特征提取技术 - 总结数据序列

数据挖掘 机器学习 特征选择 时间序列
2021-09-25 05:19:12

我经常构建一个模型(分类或回归),其中我有一些预测变量是序列,我一直在尝试找到技术建议,以尽可能最好的方式总结它们,以便将它们作为预测变量包含在模型中。

作为一个具体的例子,假设正在建立一个模型来预测客户是否会在接下来的 90 天内离开公司(t 和 t+90 之间的任何时间;因此是二元结果)。可用的预测变量之一是期间 t_0 到 t-1 的客户财务余额水平。也许这代表了前 12 个月的每月观察(即 12 次测量)。

我正在寻找构建本系列特征的方法。我使用每个客户系列的描述,例如均值、高、低、标准偏差,拟合 OLS 回归以获取趋势。他们还有其他计算特征的方法吗?其他变化或波动的衡量标准?

添加:

正如下面的回复中提到的,我还考虑过(但忘记在此处添加)使用动态时间规整 (DTW),然后对结果距离矩阵进行层次聚类 - 创建一些集群,然后使用集群成员作为特征。对测试数据进行评分可能必须遵循对新案例和集群质心进行 DTW 的过程 - 将新数据系列与其最接近的质心匹配......

4个回答

很想看到一个盒子,里面收集了关于特征工程/提取的案例研究

请告知这是否有帮助

  1. 时间序列数据的离散化 http://arxiv.org/ftp/q-bio/papers/0505/0505028.pdf

  2. 优化知识发现的时间序列离散化 https://www.uni-marburg.de/fb12/datenbionik/pdf/pubs/2005/moerchen05optimizing

  3. 体验 SAX:时间序列的新符号表示 http://cs.gmu.edu/~jessica/SAX_DAMI_preprint.pdf

  4. 大数据互动探索系列索引 http://acs.ict.ac.cn/storage/slides/Indexing_for_Interactive_Exploration_of_Big_Data_Series.pdf

  5. 用于时间序列数据中结构模式识别的广义特征提取 http://www.semanticscholar.org/paper/Generalized-Feature-Extraction-for-Structural-Olszewski-Maxion/7838bcd87bb6616e9fd3ffd92d4676a7082da34c

  6. 在 R 中计算和可视化动态时间扭曲对齐:dtw 包 https://cran.r-project.org/web/packages/dtw/vignettes/dtw.pdf

您在这里尝试做的是降低特征的维度。您可以搜索降维以获得多个选项,但一种非常流行的技术是主成分分析 (PCA)。主成分不像您提到的选项那样可解释,但它们在总结所有信息方面做得很好。

特征提取始终是一个挑战,并且在文献中很少被提及,因为它广泛依赖于应用程序。

您可以尝试一些想法:

  • 原始数据,每天测量。为了使不同长度的时间线具有可比性,这很明显具有一些含义和额外的预处理(标准化)。
  • 更高的时刻:偏度、峰度等
  • 衍生物:进化的速度
  • 时间跨度不是那么大,但也许值得尝试一些时间序列分析功能,例如自相关。
  • 一些自定义功能,例如在几周内打破时间表,并分别测量您每周已经测量的数量。然后,非线性分类器将能够将例如第一周的特征与上周的特征结合起来,以便及时了解演化。

乍一看,您需要从时间序列 (x - 12) - x 中提取特征。一种可能的方法是计算汇总指标:平均值、离散度等。但这样做会丢失所有与时间序列相关的信息。但是从曲线形状中提取的数据可能非常有用。我建议您阅读这篇文章,其中作者提出了时间序列聚类算法。希望,这将是有用的。除了这种聚类,您还可以将汇总统计信息添加到您的功能列表中。