基于sktime的多元时序数据分类模型

智能穿戴设备上安装了很多微型传感器,包括:重力感应器、加速度传感器、方向感应器、三轴陀螺仪、距离传感器、光线传感器、方位感应器等等。

BasicMotions数据集就是利用智能手表上的3D加速计3D陀螺仪传感器分别对步行休息跑步打羽毛球四项活动进行数据采集,该数据集由四名学生戴着智能手表进行,参与者被要求分别做四项运动,间隔0.1秒对数据进行一次采样,持续10秒,每项运动采集五次数据。
在这里插入图片描述

通过机器学习建模,构建分类预测模型。

1. 数据预处理
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sktime.datasets import load_basic_motions

X, y = load_basic_motions(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
print(X_train.shape, y_train.shape, X_test.shape, y_test.shape)
print(X.dtypes)
2. 模型训练

对多元时序数据进行机器学习建模可以采用很多常用的算法模型,但时序数据与截面数据有着本质的区别。例如,在向量距离计算上,截面数据向量通常采用欧几里得公式计算,但时间序列数据存在多种相似或距离函数,其中最突出的是DTW(Dynamic Time Warping,动态时间归整)算法。可以将6个维度的传感数据串联成1维数据,然后通过Knn算法(dtw)进行快速分类建模。也可以使用Bespoke分类算法进行多元变量建模;本文选用MrSEQLClassifier包提供的Bespoke分类算法进行演示:

from sktime.classification.shapelet_based import MrSEQLClassifier
# Bespoke classification algorithms
ms = MrSEQLClassifier()
# fit training data
ms.fit(X_train, y_train)

predicted = ms.predict(X_test)

# Classification accuracy
print("Accuracy with mr-seql: %2.3f" % metrics.accuracy_score(y_test, predicted))
Accuracy with mr-seql: 1.000
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sktime提供了许多用于时间序列预测的模型和工具,例如ARIMA、SARIMA、ETS等。绘制时间序列预测图形的方法通常包括将实际数据和预测数据一起绘制,并使用不同的颜色或线型区分它们。 下面是一个简单的示例,演示如何使用sktime和Matplotlib绘制时间序列预测图形: ```python import matplotlib.pyplot as plt from sktime.forecasting.arima import AutoARIMA from sktime.datasets import load_airline # 加载航空公司乘客数据集 y = load_airline() # 拆分数据集 y_train, y_test = y[:120], y[120:] # 训练自动ARIMA模型 forecaster = AutoARIMA(sp=12, suppress_warnings=True) forecaster.fit(y_train) # 预测未来12个月的数据 y_pred = forecaster.predict(fh=[i for i in range(1, 13)]) # 绘制实际数据和预测数据的线图 plt.plot(y_train, label='train') plt.plot(y_test, label='test') plt.plot(y_pred, label='forecast') plt.title('Airline Passengers') plt.xlabel('Time') plt.ylabel('Passengers') plt.legend() plt.show() ``` 在这个示例中,我们首先使用sktime加载了航空公司乘客数据集,并将其拆分为训练集和测试集。然后,我们使用自动ARIMA模型来训练数据,并使用该模型预测未来12个月的数据。最后,我们将实际数据、测试数据和预测数据一起绘制在同一张图上,并使用不同的颜色区分它们。 您可以根据需要自定义这些图形,例如添加网格线、更改线条颜色或线型等。Matplotlib提供了许多选项,可以让您创建漂亮的时间序列预测图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值