时间序列数据特征提取TsFresh--入门简介【附源码+数据】

时间序列数据特征提取TsFresh–入门简介

简介

tsfresh用于从时间序列中提取特征。本篇主要介绍时间序列时间特征的拓展和过滤。编程环境jupyter notebook

源码和数据地址

链接:https://pan.baidu.com/s/1VjHgdcIx9WY3VigHMkBCKw
提取码:gqs1

TsFresh安装

pip install tsfresh

代码部分说明

数据下载

from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures
download_robot_execution_failures()
timeseries, y = load_robot_execution_failures()

数据展示

timeseries.describe()

在这里插入图片描述

y.head()

在这里插入图片描述

从文件读取数据

import pandas as pd
import numpy as np
timeseries_csv = pd.read_csv('load_robot_execution_failures_timeseries.csv')
timeseries_csv.describe()

在这里插入图片描述

y_csv = pd.read_csv('load_robot_execution_failures_y.csv',usecols = ['index','value'])
y_csv= pd.Series(np.array(y_csv['value']).tolist(),index =np.array(y_csv['index']).tolist())
y_csv.head()

在这里插入图片描述

特征拓展

1、默认参数
from tsfresh.feature_extraction import extract_features
extracted_features_0 = extract_features(timeseries, column_id="id", column_sort="time")
extracted_features_0.shape

在这里插入图片描述

2、ComprehensiveFCParameters参数
from tsfresh.feature_extraction import extract_features, ComprehensiveFCParameters
settings = ComprehensiveFCParameters()
extracted_features_1 = extract_features(timeseries, column_id="id", column_sort="time",default_fc_parameters=settings)
extracted_features_1.shape

在这里插入图片描述

3、EfficientFCParameters参数
from tsfresh.feature_extraction import extract_features, EfficientFCParameters
settings = EfficientFCParameters()
extracted_features_2 = extract_features(timeseries, column_id="id", column_sort="time",default_fc_parameters=settings)
extracted_features_2.shape

在这里插入图片描述

4、MinimalFCParameters参数
from tsfresh.feature_extraction import extract_features, MinimalFCParameters
settings = MinimalFCParameters()
extracted_features_3 = extract_features(timeseries, column_id="id", column_sort="time",default_fc_parameters=settings)
extracted_features_3.shape

在这里插入图片描述

特征过滤

1、默认参数
from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute
impute(extracted_features_0)
features_filtered_0 = select_features(extracted_features_0, y) #特征选择
features_filtered_0.shape

在这里插入图片描述

2、ComprehensiveFCParameters参数
from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute
impute(extracted_features_1)
features_filtered_1 = select_features(extracted_features_1, y) #特征选择
features_filtered_1.shape

在这里插入图片描述

3、EfficientFCParameters参数
from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute
impute(extracted_features_2)
features_filtered_2 = select_features(extracted_features_2, y) #特征选择
features_filtered_2.shape

在这里插入图片描述

4、MinimalFCParameters参数
from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute
impute(extracted_features_3)
features_filtered_3 = select_features(extracted_features_3, y) #特征选择
features_filtered_3.shape

在这里插入图片描述

特征拓展和过滤同时进行

1、默认参数
from tsfresh import extract_relevant_features
features_filtered_direct_0 = extract_relevant_features(timeseries,y, column_id="id", column_sort="time")
features_filtered_direct_0.shape

在这里插入图片描述

2、ComprehensiveFCParameters参数
from tsfresh.feature_extraction import ComprehensiveFCParameters
from tsfresh import extract_relevant_features
settings = ComprehensiveFCParameters()
features_filtered_direct_1 = extract_relevant_features(timeseries,y, column_id="id", column_sort="time",default_fc_parameters=settings)
features_filtered_direct_1.shape

在这里插入图片描述

3、EfficientFCParameters参数
from tsfresh.feature_extraction import EfficientFCParameters
from tsfresh import extract_relevant_features
settings = EfficientFCParameters()
features_filtered_direct_2 = extract_relevant_features(timeseries,y, column_id="id", column_sort="time",default_fc_parameters=settings)
features_filtered_direct_2.shape

在这里插入图片描述

4、MinimalFCParameters参数
from tsfresh.feature_extraction import MinimalFCParameters
from tsfresh import extract_relevant_features
settings = MinimalFCParameters()
features_filtered_direct_3 = extract_relevant_features(timeseries,y, column_id="id", column_sort="time",default_fc_parameters=settings)
features_filtered_direct_3.shape

在这里插入图片描述

结论

通过拓展+滤波,和直接一次性滤波效果一致。

参考

【1】 tsfresh官网
【2】 tsfresh GitHub
【3】时序数据处理工具-时间序列数据特征提取TsFresh

要使用CNN对时间序列数据进行特征提取,可以按照以下步骤进行: 1. 数据准备:首先,需要准备时间序列数据。确保数据已经整理好,每个样本是一个时间序列,其中每个时间点有多个特征。 2. 数据预处理:对时间序列数据进行预处理,例如标准化、归一化、平滑化等。确保数据的尺度和范围相同。 3. 数据划分:将数据划分为训练集、验证集和测试集,通常按照80%的训练集、10%的验证集和10%的测试集比例划分。 4. 数据转换:将时间序列数据转化为适合CNN模型的输入形式。常见的方法是将时间序列数据转换为图像矩阵,其中时间维度对应图像的行,特征维度对应图像的列。可以使用特征提取方法(如小波变换)来增加图像的维度。 5. 构建CNN模型:使用Python的深度学习库(如TensorFlow、Keras、PyTorch等)构建CNN模型。配置卷积层和池化层以提取时间序列数据的特征。根据任务的要求,可以调整CNN模型的层数和宽度。 6. 模型训练:使用训练集对CNN模型进行训练。选择合适的损失函数和优化算法,并设置合适的超参数(如学习率、批量大小、迭代次数等)。 7. 模型评估:使用验证集评估模型的性能。计算准确率、召回率、F1值等指标。 8. 模型优化:如果模型性能不满足要求,可以调整模型结构、超参数等,再次进行训练和评估,直到达到预期的性能。 9. 模型测试:使用测试集对优化后的模型进行最终性能测试。 以上是使用CNN对时间序列数据进行特征提取的基本步骤,具体实现需要根据数据和任务的特点进行调整和优化。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_ROBOT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值