功能过滤
特征选择中的全相关问题是指识别所有强相关和弱相关属性的问题。对于工业应用中的时间序列分类和回归,尤其是预测性维护或生产线优化等,每个标签或回归目标同时与多个时间序列和元信息相关联,这个问题尤其难以解决。
为了限制无关特征的数量,tsfresh 部署了 fresh 算法(fresh 代表 基于可扩展假设检验的特征提取)[1]_。
该算法由 tsfresh.feature_selection.relevance.calculate_relevance_table() 调用。它是一个高效、可扩展的特征提取算法,在机器学习管道的早期阶段根据特征对分类或回归任务的重要性进行过滤,同时控制预期选中的但无关特征的百分比。
过滤过程由以下图示中的三个阶段组成:
阶段 1 - 特征提取
首先,该算法通过全面且成熟的特征映射来表征时间序列,并考虑描述元信息的附加特征。用于推导特征的特征计算器是 tsfresh.feature_extraction.feature_calculators 中的那些。
在上图中,这对应于从原始时间序列到聚合特征的变化。
第二阶段 - 功能重要性测试
在第二步中,每个特征向量都会单独且独立地根据其对预测目标的重要性进行评估。这些测试位于子模块 tsfresh.feature_selection.significance_tests 中。这些测试的结果是一个 p 值向量,量化了每个特征对预测标签/目标的重要性。
在上图中,这对应于从聚合特征到p值的变化。
第三阶段 - 多重测试程序
基于 Benjamini-Yekutieli 程序 [2] 对 p 值向量进行评估,以决定保留哪些特征。这个多重检验程序取自 statsmodel 包。
在上图中,这对应于从p值到选定特征的变化。