时间序列挖掘分析:tsfresh特征中文(一)

tsfresh是一个Python的时序数据特征挖掘的模块(官网https://tsfresh.readthedocs.io/en/latest/index.html,安装可用pip install tsfresh),提取的特征可以用来描述或聚类基于提取特征的时间序列。此外,它们还可以用于构建在时间序列上执行分类/回归任务的模型。通常,这些特性为时间序列及其动态特性提供了新的见解。该项目总共涉及64个特征,前32个特征由我翻译和调试,后32个特征由我的同事托马斯所翻译。我们在GitHub存放了项目资料和介绍https://github.com/SimaShanhe/tsfresh-feature-translation/

abs_energy(x)

  • 译:绝对能量值
  • 返回时序数据的绝对能量(平方和)

E=\sum_{i=1}^n x_i^2

  • 参数:x (pandas.Series)计算时序特征的数据对象
  • 返回值:绝对能量值(浮点数)
  • 函数类型:简单
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae = tsf.feature_extraction.feature_calculators.abs_energy(ts)
  • 注释:描述时序数据的离原点的平方波动情况(能量)

absolute_sum_of_changes(x)

  • 译:一阶差分绝对和
  • 返回时序数据的一阶差分结果的绝对值之和

\sum_{i=1}^{n-1} |x_{i+1}-x_i|

  • 参数:x (pandas.Series)计算时序特征的数据对象
  • 返回值:一阶差分绝对和(非负浮点数)
  • 函数类型:简单
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae = tsf.feature_extraction.feature_calculators.absolute_sum_of_changes(ts)
  • 注释:描述时序数据相邻观测值之间的绝对波动情况

agg_autocorrelation(x, param)

  • 译:各阶自相关系数的聚合统计特征
  • 返回时序数据的各阶差分值之间的聚合(方差、均值)统计特征

R(l)=\frac{1}{(n-l)\sigma^2}\sum_{i=1}^{n-l}(x_i-\mu)(x_{i+l}-\mu)

  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • parma(list) 包含一个字典{“f_agg”: x, “maxlag”, n} 其中x为聚合函数名,n为最大差分阶数
  • 返回值:各阶自相关系数的聚合统计特征(浮点数)
  • 函数类型:组合
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'f_agg': 'mean', 'maxlag':2}]
ae = tsf.feature_extraction.feature_calculators.agg_autocorrelation(ts, param)
  • 注释:统计时序数据各界差分间的聚合特征,依据不同的聚合函数,刻画时序数据的不同特征

agg_linear_trend(x, param)

  • 译:基于分块时序聚合值的线性回归
  • 返回时序数据的分块聚合后的线性回归(基于OLS)
  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • parma(list) 包含一个字典{“attr”: x, “chunk_len”: l, “f_agg”: f}其中“f_agg”为聚合函数名,“chunk_len”指定每块数据量,“attr”为线性回归结果参数属性: “pvalue”, “rvalue”, “intercept”, “slope”, “stderr”。
  • 返回值:指定的线性回归属性值(zip,可用list读取)
  • 函数类型:简单
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'f_agg': 'mean','attr': 'pvalue', 'chunk_len': 2}]
ae=tsf.feature_extraction.feature_calculators.agg_linear_trend(ts,param)
print(ae,list(ae))
  • 注释:略

approximate_entropy(x, m, r)

  • 译:近似熵
  • 衡量时序数据的的周期性、不可预测性和波动性
  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • m (int)对照运行数据长度
    • r (float) 过滤阈值(非负数)
  • 返回值:近似熵(浮点数)
  • 函数类型:简单
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.approximate_entropy(ts, 10, 0.1)
  • 注释:相邻熵值间的比值,是一个相对量

ar_coefficient(x, param)

  • 译:自回归系数
  • 衡量时序数据的的周期性、不可预测性和波动性

X_t=\psi_0+\sum_{i=1}^k \psi_i X_{t-i} + \varepsilon_t

  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • paramm (lsit) {“coeff”: x, “k”: y}其中“coeff”自回归中第X项系数,“k”为自回归阶数
  • 返回值:自回归系数(pandas.Series)
  • 函数类型:组合
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'coeff': 0, 'k': 10}]
ae=tsf.feature_extraction.feature_calculators.ar_coefficient(ts, param)
  • 注释:自回归方程的各阶系数\psi_i

augmented_dickey_fuller(x, param)

  • 译:扩展迪基-福勒检验(ADF检验)

  • 测试一个自回归模型是否存在单位根,衡量时序数据的平稳性

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • paramm (lsit) {“attr”: x} 其中x是字符串,包含“teststat”, “pvalue” 和“usedlag”
  • 返回值:ADF检验统计值(浮点数)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'attr': 'pvalue'}]
ae=tsf.feature_extraction.feature_calculators.augmented_dickey_fuller(ts, param)
  • 注释:返回ADF检验统计值

autocorrelation(x, lag)

  • 译:lag阶自相关性

  • 计算lag阶滞后时序数据的自相关性(浮点数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • lag(int)时序数据滞后阶数
  • 返回值:自相关性值(浮点数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.autocorrelation(ts, 2)
  • 注释:lag阶自相关性值

binned_entropy(x, max_bins)

  • 译:分组熵

  • 把整个序列按值均分成max_bins个桶,然后把每个值放进相应的桶中,然后求熵(浮点数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • max_bins(int)分组数
  • 返回值:分组熵(浮点数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.binned_entropy(ts, 10)
  • 注释:时序数据等距分组求熵

c3(x, lag)

  • 译:时序数据非线性度量
  • 基于物理学的时序数据非线性度量(浮点数)

\frac{1}{n-2lag}\sum_{i=0}^{n-2lag}x_{i+2lag}^2x_{i+lag}x_i
等同于计算
\mathbb{E}[L^2(X)L(X)X]
其中L为时滞算子。

  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • lag(int)时滞阶数
  • 返回值:非线性度(浮点数)
  • 函数类型:简单
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.c3(ts, 2)
  • 注释:时序数据非线性度

change_quantiles(x, ql, qh, isabs, f_agg)

  • 译:给定区间的时序数据描述统计

  • 先用ql和qh两个分位数在x中确定出一个区间,然后在这个区间里计算时序数据的均值、绝对值、连续变化值。(浮点数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • ql(float)区间下界
    • qh(float)区间上界
    • isabs(bool)是否采用绝对差值
    • f_agg(str)numpy聚合函数,如mean,std等
  • 返回值:区间内描述统计量(浮点数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd
import numpy as np

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.change_quantiles(ts, 0.05, 0.95, False, 'mean')
  • 注释:时序数据区间内描述统计量

cid_ce(x, normalize)

  • 译:时序数据复杂度

  • 用来评估时间序列的复杂度,越复杂的序列有越多的谷峰。 (浮点数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • normalize (bool) 是否对数据进行z标准化
  • 返回值:时序数据复杂度(浮点数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.cid_ce(ts, True)
  • 注释:时序数据复杂度

count_above_mean(x)

  • 译:高于均值个数

  • 统计高于时序数据均值的个数 (整数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:高于均值个数(整数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.count_above_mean(ts)
  • 注释:高于均值个数

count_below_mean(x)

  • 译:低于均值个数

  • 统计低于时序数据均值的个数 (整数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:低于均值个数(整数)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.count_below_mean(ts)
  • 注释:低于均值个数

cwt_coefficients(x, param)

  • 译:Ricker小波分析
  • 连续的小波分析,ricker子波是地震勘探中常用的子波类型,ricker子波是基于波动方程严格推导得到的。(pandas.Series)

\frac{2}{\sqrt{3a}\pi^{\frac{1}{4}}}(1-\frac{x^2}{a^2})\exp(-\frac{x^2}{2a^2})
其中,a是小波变换函数中的宽度参数。

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“widths”:x, “coeff”: y, “w”: z} 中x为整数值构成的数组,y,z都是整数值。
  • 返回值:小波分析(pandas.Series)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [ {'widths':tuple([2,2,2]), 'coeff': 2, 'w': 2}]
ae=tsf.feature_extraction.feature_calculators.cwt_coefficients(ts, param)
print(list(ae))
  • 注释:width参数需要可hash对象,最后返回结果可用list查看

energy_ratio_by_chunks(x, param)

  • 译:分块局部熵比率

  • 将时序数据分块后,计算目标块数据的熵与全体的熵比率。当数据不够均分时,会将多余的数据在前面的块中散布。(浮点数)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param – {“num_segments”: N, “segment_focus”: i} with N, i 取值均为整数
  • 返回值:分块局部熵比率(list)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'num_segments': 10, 'segment_focus': 5} ]
ae=tsf.feature_extraction.feature_calculators.energy_ratio_by_chunks(ts, param)
  • 注释:segment_focus是从0开始计数的,返回值为一个列表包含元组

fft_aggregated(x, param)

  • 译:绝对傅里叶变换的谱统计量

  • 返回绝对傅里叶变换后的光谱质心、峰度、偏度等值(pandas.Series)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“aggtype”: s} s为字符串取值于 [“centroid”, “variance”, “skew”, “kurtosis”]
  • 返回值:绝对傅里叶变换的谱统计量(pandas.Series)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'aggtype': 'skew'}]
ae=tsf.feature_extraction.feature_calculators.fft_aggregated(ts, param)
print(list(ae))
  • 注释:略

fft_coefficient(x, param)

  • 译:傅里叶变换系数
  • 基于快速傅里叶变换算法计算一维离散傅里叶序列的系数(pandas.Series)

A_k=\sum_{m=0}^{n-1}a_m\exp{(-2\pi i\frac{mk}{n})}

  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“coeff”: x, “attr”: s} x正整数, s为字符串取值于 [“real”, “imag”, “abs”, “angle”]
  • 返回值:傅里叶变换系数(pandas.Series)
  • 函数类型:组合
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'coeff': 2, 'attr': 'angle'}]
ae=tsf.feature_extraction.feature_calculators.fft_coefficient(ts, param)
print(list(ae))
  • 注释: [“real”, “imag”, “abs”, “angle”]分别对应系数的实值部、虚值部、绝对值、角度值。

first_location_of_maximum(x)

  • 译:最大值位置

  • 基于时序数据长度的相对最大值位置

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:相对最大值位置(float)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.first_location_of_maximum(ts)
  • 注释:返回值为pandas.Series,每个值都是最大值位置(在整个序列中的位置)与序列长度的比值

first_location_of_minimum(x)

  • 译:最小值位置

  • 基于时序数据长度的相对最小值位置

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:相对最小值位置(float)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.first_location_of_minimum(ts)
  • 注释:返回值为pandas.Series,每个值都是最小值位置(在整个序列中的位置)与序列长度的比值

friedrich_coefficients(x, param)

<font face="黑体" color=red size=5>调用接口未成功</font>

  • 译:Langevin模型拟合的多项式系数
  • 基于确定动力学模型Langevin拟合的多项式系数(pandas.Series)

\dot{x}(t)=h(x(t))+\mathcal{N}(0,R)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“m”: x, “r”: y, “coeff”: z} x为正整数,是多项式拟合的最高阶数,y是正实数,用于计算均值的分位数,z为正整数,多项式的第几项。
  • 返回值:多项式拟合系数(pandas.Series)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.friedrich_coefficients(ts, param)
  • 注释:略

has_duplicate(x)

  • 译:重复记录检验

  • 检查时序数据是否有重复记录(bool)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:重复值存在与否(bool)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.has_duplicate(ts)
  • 注释:略

has_duplicate_max(x)

  • 译:最大值记录重复检验

  • 检查时序数据最大记录是否有重复记录(bool)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:最大记录重复存在与否(bool)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.has_duplicate_max(ts)
  • 注释:略

has_duplicate_min(x)

  • 译:最小值记录重复检验

  • 检查时序数据最小记录是否有重复记录(bool)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:最小记录重复存在与否(bool)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.has_duplicate_min(ts)
  • 注释:略

index_mass_quantile(x, param)

  • 译:分位数索引

  • 计算某分位数对应的索引值(pandas.Series)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“q”: x} x为分位数值
  • 返回值:分位数索引(pandas.Series)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'q':50}]
ae=tsf.feature_extraction.feature_calculators.index_mass_quantile(ts, param)
  • 注释:略

kurtosis(x)

  • 译:峰度

  • 计算基于修正的Fisher-Pearson矩统计量的峰度(float)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:修正的峰度(float)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.kurtosis(ts)
  • 注释:表征概率密度分布曲线在平均值处峰值高低的特征数。

large_standard_deviation(x, r)

  • 译:标准差是否倍于极差
  • 标准差是否为数据范围的r倍(bool)

std(x)>r*(max(x)-min(x))

  • 参数:
    • x (pandas.Series)计算时序特征的数据对象
    • r (float) – 比率值
  • 返回值:标准差是否倍于极差(bool)
  • 函数类型:组合
  • 代码示例:
#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.large_standard_deviation(ts, 0.2)
  • 注释:根据经验法则,标准偏差应该是数值范围的四分之一。

last_location_of_maximum(x)

  • 译:最大值最近位置

  • 基于时序数据长度的相对最大值最近位置(float)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:相对最大值最近位置(float)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.last_location_of_maximum(ts)
  • 注释:返回值为一个相对位置和时序数据长度的比值

last_location_of_minimum(x)

  • 译:最小值最近位置

  • 基于时序数据长度的相对最小值最近位置(float)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:相对最小值最近位置(float)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.last_location_of_minimum(ts)
  • 注释:返回值为一个相对位置和时序数据长度的比值

length(x)

  • 译:数据记录数

  • 统计时序数据的总记录数(int)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:数据总行数(int)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.length(ts)
  • 注释:略

linear_trend(x, param)

<font face="黑体" color=red size=5>调用接口未成功</font>

  • 译:线性回归分析

  • 基于最小二乘,自变量为索引(0-len(x)-1)的线性回归,认为数据是简单采样所得(pandas.Series)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
    • param (list) {“attr”: x} x为线性回归中的结果变量名,如'pvale'。
  • 返回值:线性回归分析(pandas.Series)

  • 函数类型:组合

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
param = [{'attr': 'pvalue'}]
ae=tsf.feature_extraction.feature_calculators.linear_trend(ts, param)
  • 注释:略

longest_strike_above_mean(x)

  • 译:均值上的最长连续自列长度

  • 返回x中大于x平均值的最长连续子序列的长度(int)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:最长连续子列长度(int)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.longest_strike_above_mean(ts)
  • 注释:略

longest_strike_below_mean(x)

  • 译:均值下的最长连续自列长度

  • 返回x中小于x平均值的最长连续子序列的长度(int)

  • 参数:

    • x (pandas.Series)计算时序特征的数据对象
  • 返回值:最长连续子列长度(int)

  • 函数类型:简单

  • 代码示例:

#!/usr/bin/python3
import tsfresh as tsf
import pandas as pd

ts = pd.Series(x)  #数据x假设已经获取
ae=tsf.feature_extraction.feature_calculators.longest_strike_below_mean(ts)
  • 注释:略
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335