2026/6/20 4:37:46
网站建设
项目流程
苏州天狮建设监理有限公司网站,甲马营seo网站优化的,jsp网站开发源码实例,音乐网站开发参考文献时间序列无处不在#xff0c;心电图上的心跳、股票价格、家庭智能电表读数#xff0c;甚至句子中词语——这些都是时间序列。它们的特殊之处在于顺序#xff1a;过去影响未来#xff0c;相邻的数据点往往高度相关。
现代预测和分类模型很少直接处理原始时间序列值。它们依…时间序列无处不在心电图上的心跳、股票价格、家庭智能电表读数甚至句子中词语——这些都是时间序列。它们的特殊之处在于顺序过去影响未来相邻的数据点往往高度相关。现代预测和分类模型很少直接处理原始时间序列值。它们依赖的是特征用来描述序列形状、变异性、趋势和模式的摘要信息。好的特征能把困难的预测问题转化为更简单的回归或分类任务。当前有两大趋势一是 AutoML自动机器学习像 auto-sklearn 这样的系统能自动搜索模型族、超参数和预处理步骤。二是自动化时间序列特征提取像 tsfresh 这样的库可以从每个序列生成数百个特征涵盖统计量、自相关、频谱内容、熵等各个维度。最近的研究表明将 AutoML 与丰富的时间序列特征结合在许多预测任务上能超越复杂的深度神经网络。更有意思的是这种方法甚至可以通过语言时间序列来提升文本分类的性能。本文将介绍多步时间序列预测的构建方式、auto-sklearn 如何扩展用于时间序列、tsfresh 的工作原理和使用方法以及两个案例研究数值预测和文本作为时间序列。文末还有一些可以直接应用到项目中的实用技巧。多步预测不仅预测下一步还要预测接下来的 k 步多步超前预测的目标不是预测下一个值而是预测一整个序列的未来值x i 1 , x i 2 , … , x i k x_{i1}, x_{i2}, \dots, x_{ik}xi1,xi2,…,xik比如预测未来 24 小时的电力负荷、未来 10 天的原油价格或者提前几个时间步预测洪水水位。两种主要策略被广泛使用。递归策略首先训练一个模型只预测下一个时间步x ^ i 1 f ( x i − w 1 , … , x i ) \hat{x}_{i1} f(x_{i-w1}, \dots, x_i)x^i1f(xi−w1,…,xi)然后把这个预测值作为输入反馈进去得到下一个预测x ^ i 2 f ( x i − w 2 , … , x i , x ^ i 1 ) \hat{x}_{i2} f(x_{i-w2}, \dots, x_i, \hat{x}_{i1})x^i2f(xi−w2,…,xi,x^i1)如此重复直到达到 x_{ik}。这种方法只需训练一个模型计算成本较低。但问题在于早期步骤的任何误差都会在后续预测中传播和放大这就是我们常说的自回归预测。直接多输出策略另一种思路是训练一个模型一次预测所有未来步骤[ x ^ i 1 , … , x ^ i k ] f ( x i − w 1 , … , x i ) [\hat{x}_{i1}, \dots, \hat{x}_{ik}] f(x_{i-w1}, \dots, x_i)[x^i1,…,x^ik]f(xi−w1,…,xi)这样做的好处是跨预测范围没有误差累积在固定计算预算下通常准确性更好。缺点是模型更复杂数据有限时可能更难拟合。实践中两种策略都有用武之地。关键点在于无论选择哪种策略输入窗口大小 w 的选择以及从该窗口计算的特征都会显著影响性能。时间序列的 AutoML扩展 auto-sklearnAutoML 的目标是自动化机器学习流水线的设计包括数据清洗、特征预处理、模型选择和超参数调优。像 auto-sklearn 这样的系统把这当作搜索问题来处理用贝叶斯优化和元学习探索不同的流水线构建优秀候选者的集成。典型的 auto-sklearn 流水线包含预处理器缩放、填充等、特征预处理器PCA、核近似等、模型SVM、随机森林、梯度提升等以及集成构建组件。不过原始的 auto-sklearn 是为通用表格数据设计的。开箱即用时它不包含专门的时间序列特征提取器像自相关峰值、频谱熵或季节性统计量这些。有人对 auto-sklearn 做了修改让特征预处理阶段可以包含时间序列特征提取特别是使用 tsfresh并且把窗口大小 w 本身作为超参数来搜索。扩展后的 AutoML 系统会搜索算法 ASVM、GBM 等、超参数 λ 和窗口大小 w以最小化验证数据上的损失函数如 RMSE。tsfreshtsfreshTime Series Feature Extraction based on Scalable Hypothesis tests基于可扩展假设检验的时间序列特征提取是一个 Python 库。它能自动从每个时间序列计算数百个特征综合特征集大约有每个序列 794 个特征。这些特征涵盖的类别相当广基本统计量均值、方差、分位数、形状描述符偏度、峰度、绝对能量、自相关和偏自相关、频域度量傅里叶系数、频谱能量、熵、非线性时间序列特征排列熵、小波系数等。tsfresh 还会用假设检验来判断哪些特征与目标相关配合多重检验校正来避免错误发现。这种方式把工作重心从手动发明特征“要不要试试滚动均值、滞后差分或许再加个 FFT”转移到系统地探索一个丰富的特征库让统计学和模型性能来决定什么才是重要的。数据格式化tsfresh 期望长格式的 DataFrame一列用于 id标识这行属于哪个时间序列、一列用于 time或排序索引、一列或多列包含观测值。示例结构大致如下特征提取通常会调用类似这样的代码from tsfresh import extract_features from tsfresh.feature_extraction import ComprehensiveFCParameters features extract_features( df, column_idid, column_sorttime, default_fc_parametersComprehensiveFCParameters() )这会产生一个宽表每行对应一个时间序列一个 id每列是一个特征比如 valuemean、valueabs_energy、valueautocorrelationlag_1、valuefourier_entropybins_5 等等。处理缺失值对于很短或退化的序列某些特征是未定义的比如长度为 1 的序列没法计算 FFT。tsfresh 提供了工具来填充或删除包含太多 NaN 的列from tsfresh.utilities.dataframe_functions import impute impute(features) # 用合理的默认值替换 NaN / inf或者简单地删除全是 NaN 的列features features.dropna(axis1)特征相关性和选择对于监督任务tsfresh 还能基于假设检验进行特征选择将每个特征与目标关联起来。这通常通过 extract_relevant_features 等函数完成或者通过集成 tsfresh 的 AutoML 框架来应用其自身的选择逻辑。用于预测的滚动特征提取做预测时通常希望在滑动窗口上计算特征。先选择窗口大小比如 24 小时对每个时间窗口计算 tsfresh 特征然后用这些特征行作为输入将未来目标值作为标签。案例研究 1AutoML tsfresh 用于多步预测Wang 等人对 AutoML 和时间序列特征工程在多步预测任务上的相互作用进行了系统研究。问题设置给定单变量时间序列 (x_1, x_2, \dots, x_i)目标是仅使用最后 w 个观测值来预测接下来的 k 个值x i 1 , … , x i k x_{i1}, \dots, x_{ik}xi1,…,xik窗口大小 w 至关重要。太小会错过慢速模式太大模型会看到嘈杂或不相关的历史。作者之前的工作已经表明即使在单步任务中调整 w 也能显著影响预测性能所以他们在这里把自动窗口大小选择扩展到了多步设置。扩展 auto-sklearn他们对 auto-sklearn 做了两处主要调整。第一是添加基于 tsfresh 的时间序列特征提取器作为候选特征预处理器。第二是把窗口大小 w 作为 AutoML 可以搜索的超参数而不是固定的手动选择常数。扩展后的 AutoML 系统会搜索模型族SVM、GBM 等、超参数C、学习率、树深度等和窗口大小 w考虑 50–200 点等范围。三种 AutoML 变体他们提出了三种专门用于时间序列预测的 auto-sklearn 变体。W 变体带自动窗口大小选择的 Auto-sklearn使用窗口中的原始滞后值作为特征让 AutoML 在 50–200 的范围内选择最佳窗口大小。T 变体带 tsfresh 特征的 Auto-sklearn使用固定窗口大小比如 w 100应用 tsfresh 从每个窗口段提取数百个特征用 Benjamini-Hochberg 程序为每个预测步骤选择统计显著的特征然后取跨预测范围的并集。WT 变体结合了两个想法AutoML 同时调整窗口大小 w 并使用从每个候选窗口提取的 tsfresh 特征。基线和数据为了对这些变体进行基准测试他们与多种基线进行了比较。传统机器学习基线包括 SVM递归和多输出两种形式和 GBM同样有递归和多输出两种。神经网络和 AutoML 基线包括 N-BEATS一个很强的单变量预测深度学习模型、Auto-Keras配置了 LSTM/GRU 循环块和手动选择的窗口大小以及原始 auto-sklearn固定窗口大小无时间序列特定特征。数据集来自 CompEngine一个大型时间序列数据仓库。他们从不同类别选择了 20 个数据集音频动物声音、语音、音乐、生态数据、宏观和微观经济、金融原油、汇率、天然气价格、医学数据ECG、动力系统受驱摆、Duffing 振荡器等和随机过程自回归、随机游走等。每个数据集按时间分为 67% 训练集和 33% 测试集。关键发现几个最有意思的结果值得一提。多输出模型在相同计算预算下通常优于递归模型大概是因为避免了跨预测范围的误差累积。原始 auto-sklearn固定窗口大小已经在 20 个数据集中的 8 个上击败了所有传统机器学习基线。专门的 AutoML 变体进一步提升了性能。W 变体自动窗口大小无 tsfresh在 20 个数据集中的 14 个上优于最佳传统机器学习基线SVM 多输出。W、T 和 WT 分别在 10、5 和 5 个数据集上显示出比所有传统基线更低的误差。与深度学习模型 N-BEATS 相比最佳 AutoML 变体 W 在 20 个数据集中的 14 个上胜出。其他 AutoML 系统Auto-Keras、原始 auto-sklearn、T、WT也在许多数据集上击败 N-BEATS有时差距相当大。要点总结这项研究有几个关键发现。AutoML 配合经典模型与深度模型具有极强的竞争力特别是结合良好的特征工程和窗口大小调整时。窗口大小是一等超参数——即使没有花哨的特征调整它也能带来很大收益。tsfresh 特征有帮助但不一定以预期的方式总体来看纯窗口大小变体 W 是最强的而基于 tsfresh 的变体可能在特定领域或评估指标上更有优势。多输出策略是有限预算下多步预测的可靠默认选择。案例研究 2将文本作为时间序列处理时间序列特征工程不只适用于传感器读数或金融数据。在 2020 年的 EPJ Data Science 文章中Tang 等人把短文本样本重新解释为时间序列然后应用 tsfresh 风格的特征提取来改进作者归属任务。从文本到语言时间序列先对每个文本样本分词然后把每个 token 映射到一个数值度量——可以是它在语料库中的频率、按频率的排名、字符长度或者对词计数向量的贡献等。按 token 在句子中的位置排列这些数值就形成了语言时间序列。他们实验了五种功能性语言序列映射包括 token 频率序列、token 排名序列、token 长度序列以及基于分布的序列如 token 长度分布和 token 排名分布。每个结果序列都像普通时间序列一样处理。文本上的时间序列特征提取对于这五种映射中的每一种他们用 tsfreshComprehensiveFCParameters每个序列提取 794 个时间序列特征最终得到每个文本样本 3970 个风格计量特征794 × 5 种映射。用 tsfresh 的 impute 函数处理缺失值和无穷值用 10 折交叉验证评估模型以 log loss 作为主要指标。这些时间序列特征然后与标准 NLP 基线朴素贝叶斯和最近质心分类器的预测结合用 XGBoost 构建混合分类器。结果和见解他们在两个数据集上进行了测试Spooky Books平衡类别恐怖小说和联邦党人文集不平衡历史上很重要的论文。在 Spooky Books 案例中语言时间序列特征持续改进了基线 NLP 模型。对于联邦党人文集将这些特征加到强 NLP 基线中带来了较小但仍有希望的改进。一些特定的 tsfresh 特征在语言学上具有很好的可解释性。平均 token 长度特征能区分倾向于使用长词还是短词的作者。token 长度序列上的 c3 非线性统计量捕捉了词长波动的微妙模式。token 长度分布上的线性趋势特征截距和斜率能反映作者是倾向于使用均匀范围的词长还是集中于较短的词。作者的结论是时间序列特征提取提供了新颖的风格计量信号可以增强传统 NLP 特征这个功能性语言分析框架在更广泛的作者归属和风格分析任务中有潜力。实用工作流程整合前面的内容这里给出一个可以用于时间序列项目数值或文本的具体流程。首先要清楚定义预测任务是单步还是多步预测分类还是回归然后选择窗口策略。从 w 的合理范围开始小时数据可以从 24–168 开始如果可能的话把 w 作为可调超参数处理。接着为 tsfresh 格式化数据。数值时间序列用 (id, time, value) 格式。文本的话像 Tang 等人那样把句子转换为功能性语言序列token 长度、频率、排名等。用 tsfresh 提取特征时从 ComprehensiveFCParameters 开始探索完整的特征库用 impute() 清理 NaN 和无穷值。特征选择有几种方式用 tsfresh 自带的相关性检验或应用 Benjamini-Hochberg 这样的多重检验控制或在模型中用正则化/特征重要性方法基于树的模型、L1 正则化线性模型等。模型方面如果做结构化实验auto-sklearn 或 Auto-Keras 这样的框架可以搜索模型族和超参数。否则从梯度提升、随机森林或调优良好的神经网络这些强基线开始。评估要充分。预测任务考虑 RMSE、MAE 和特定预测范围的误差。分类任务包括文本用准确率、log loss 和校准指标最好配合交叉验证。最后是解释关键特征。用特征重要性图或 SHAP 值看哪些 tsfresh 特征重要把它们与领域知识联系起来是否捕捉了季节性、波动性、体制变化或风格模式是否揭示了不同组之间的差异作者、患者类型、设备状态等总结从数值到文本领域这些工作传达的信息很明确。时间序列的特征工程远未过时——它只是变得更系统化和自动化了。AutoML 系统可以把 tsfresh 这样的时间序列特定组件纳入进来效果很好通常能在许多任务上与最先进的神经模型匹敌甚至超越。把文本这样的非传统数据当作时间序列处理开启了一个全新的特征和分析工具空间。如果正在构建预测或序列分类流水线值得尝试 tsfresh 或类似的特征库、能同时调整模型和窗口大小的 AutoML 框架以及语言时间序列这样的跨领域思路。工程特征带来可解释性AutoML 提供灵活性而如果这些研究有任何指示意义的话——实现最先进性能的机会相当不错。引用https://avoid.overfit.cn/post/a96a4522adbf4d82a3b02b8c328b2306作者QuarkAndCode