什么是sktime
?
sktime
是一个专为时序分析设计的Python库。它的核心优势在于提供了一个统一的接口,让我们能够轻松地处理多种时序学习任务。这些任务包括但不限于:
时序分类:将时序数据分配到预先定义的类别中。 时序回归:预测时序数据的未来值。 时序聚类:根据数据的相似性将时序数据分组。 时序注释:为时序数据添加描述性标签。 时序预测:预测未来某个时间点的时序数据。
sktime
模块介绍
sktime
提供了一个统一的接口,用于处理不同但相关的时序学习任务。它包含了专门的时序分析算法和用于构建复合模型的工具,例如管道化、集成、调优和降维,使用户能够将为一个任务设计的算法应用于另一个任务。
sktime
还提供了与相关库的接口,例如scikit-learn、statsmodels、tsfresh、PyOD和fbprophet等。
| 模块 | 状态 | 链接 |
|---|---|---|
| 预测 | 稳定 | 教程 · API参考 · 扩展模板 |
| 时序分类 | 稳定 | 教程 · API参考 · 扩展模板 |
| 时序回归 | 稳定 | API参考 |
| 转换 | 稳定 | 教程 · API参考 · 扩展模板 |
| 参数拟合 | 成熟中 | API参考 · 扩展模板 |
| 时序聚类 | 成熟中 | API参考 · 扩展模板 |
| 时序距离/核 | 成熟中 | 教程 · API参考 · 扩展模板 |
| 时序对齐 | 实验性 | API参考 · 扩展模板 |
| 注释 | 实验性 | 扩展模板 |
| 时序分割器 | 成熟中 | 扩展模板 |
| 分布和模拟 | 实验性 |
sktime预测模块
https://www.sktime.net/en/latest/examples/01_forecasting.html
sktime提供了一个类似于scikit-learn的通用接口,用于多种经典和机器学习风格的预测算法,同时还提供了构建管道和复合机器学习模型的工具,包括时间调整方案,或者像滚动应用scikit-learn回归器这样的降维技术。

NaiveForecaster: 基于对过去趋势持续的天真假设进行预测。 ForecastKnownValues: 将已知或预定义的值作为预测结果。 SquaringResiduals: 基于另一个预测器计算预测方差。 NaiveVariance: 基于天真策略计算预测方差。 ConformalIntervals: 提供经验和整合的预测区间。 BaggingForecaster: 通过汇总其自助样本的预测来预测时间序列。 TrendForecaster: 基于时间序列数据的趋势进行预测。 ExponentialSmoothing: 使用Holt-Winters指数平滑进行预测。 AutoETS: 具有手动和自动拟合功能的ETS模型。 ARIMA: 来自pmdarima包的ARIMA(自回归集成滑动平均)预测器。 SARIMAX: SARIMAX预测器。 VAR: 向量自回归模型的通用化。 VARMAX: 来自statsmodels的VARMAX模型的包装器。 AutoARIMA: 具有自动选择参数的ARIMA模型。 Prophet: 基于Facebook的prophet算法进行预测的预测器。 EnsembleForecaster: 多个预测器的集成。 StackingForecaster: 使用堆叠技术进行预测。 Croston: 用于预测间歇时间序列的Croston方法。 ReconcilerForecaster: 用于层次调和的预测器。 OnlineEnsembleForecaster: 在线更新的预测器集成。
sktime分类模块
https://github.com/sktime/sktime/blob/main/examples/02_classification.ipynb
时间序列分类涉及根据时间序列的时间特征来预测其所属的标签或类别。如根据每日能量消耗情况来预测季节,需要从每个能量消耗曲线中提取特征(如日均值、方差、趋势等),并训练一个分类器来基于这些特征预测季节(如冬季、夏季、春季、秋季)。

深度学习方法
CNNClassifier:时间卷积神经网络,用于时间序列分类。 CNTCClassifier:上下文时间序列神经分类器,根据上下文信息进行分类。 FCNClassifier:全连接神经网络,用于时间序列分类。 LSTMFCNClassifier:结合了长短期记忆(LSTM)和一维卷积网络(FCN)的分类器。 InceptionTimeClassifier:InceptionTime深度学习分类器,使用Inception模块进行特征提取。 MACNNClassifier:多尺度注意力卷积神经网络分类器,具有多尺度注意力机制。 MLPClassifier:多层感知机网络,用于时间序列分类。 MCDCNNClassifier:多通道深度卷积神经网络分类器,用于多通道时间序列分类。 ResNetClassifier:残差神经网络分类器,使用残差连接来解决梯度消失问题。 SimpleRNNClassifier:简单的循环神经网络分类器,用于时间序列分类。 TapNetClassifier:时间序列注意力原型网络分类器,具有注意力机制用于重要特征识别。
基于字典的方法
BOSSEnsemble:基于BOSS符号傅里叶逼近的集成分类器。 ContractableBOSS:可缩放的BOSS分类器,用于时间序列分类。 IndividualBOSS:单一BOSS分类器,用于单一时间序列分类。 MUSE:多元符号扩展分类器,用于时间序列分类。 WEASEL:用于时间序列分类的单词提取分类器。
基于距离的方法
ElasticEnsemble:弹性集成分类器,基于距离度量。 KNeighborsTimeSeriesClassifier:K最近邻时间序列分类器,使用距离度量进行分类。 ProximityForest:接近度森林分类器,用于时间序列分类。
基于形状的方法
ShapeDTW:基于动态时间规整(DTW)的形状分类器。
基于特征的方法
Catch22Classifier:基于Canonical Time-series Characteristics (Catch22)的分类器。 TSFreshClassifier:基于TSFresh特征提取的分类器。
sktime 聚类模块
https://www.sktime.net/en/latest/api_reference/clustering.html
时间序列聚类涉及根据它们的相似性或距离度量将时间序列数据分组成簇。

TimeSeriesKMeans: 这是时间序列K均值聚类的实现,用于将时间序列数据分为预先指定数量的簇。 TimeSeriesKMeansTslearn: 该方法是使用K均值聚类算法对时间序列数据进行聚类的实现,基于tslearn库。 TimeSeriesKMedoids: 这是时间序列K中心点聚类的实现,类似于K均值,但使用中心点的实际观测值而不是平均值。 TimeSeriesKShapes: 这是用于时间序列的K形状聚类,它寻找具有相似形状的时间序列并将它们分为不同的簇。 TimeSeriesKernelKMeans: 时间序列核K均值的算法封装实现,利用核方法对时间序列数据进行聚类,适用于非线性可分的情况。
# 扫码一起讨论Kaggle比赛 #

每天大模型、算法竞赛、干货资讯





