心跳预测分类(三)

特征工程

  • 数据预处理
    • 时间序列数据格式处理
    • 加入时间步特征time
  • 特征工程
    • 时间序列特征构造
    • 特征筛选
    • 使用 tsfresh 进行时间序列特征处理

tefrsh的使用:

Tsfresh是处理时间序列的关系数据库的特征工程工具,能自动从时间序列中提取多个特征。该软件包包含多种特征提取方法和一种稳健的特征选择算法,还包含评价这些特征对回归或分类任务的解释能力和重要性的方法。

特点

TsFresh能自动地计算出大量的时间序列特征,即所谓的特征,这些特征描述了时间序列的基本特征,如峰数、平均值或最大值或更复杂的特征,如时间反转对称统计。同时通过假设检验来将特征消减到最能解释趋势的特征,称为去相关性。然后,可以使用这些特征集在时间序列上构造统计或机器学习模型,例如在回归或分类任务中使用。

安装

pip install tsfresh

官方文档

示例

每个机器人记录来自六个不同传感器的时间序列。对于每个由不同id表示的样本,我们将对机器人是否报告故障进行分类。从机器学习的角度来看,我们的目标是对每一组时间序列进行分类。
首先,我们将数据加载到python中。

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()

使用pandas.DataFrame查看数据:

print(timeseries.head())

在这里插入图片描述
第一列是DataFrame索引,在这里没有任何意义。有六个不同的时间序列(F_x, F_y, F_z, T_x, T_y, T_z)用于不同的传感器。不同的机器人由ID列表示。
另一方面,y包含机器人的信息ID报告了一次失败,但没有:
在这里插入图片描述
这里,对于ID为1至5的样本,未报告故障。
在以下中,我们演示了报告没有故障的示例id 3的时间序列:

import matplotlib.pyplot as plt
timeseries[timeseries['id'] == 3].plot(subplots=True, sharex=True, figsize=(10,10))
plt.show()

在这里插入图片描述
对于id 20,报告失败:
timeseries[timeseries[‘id’] == 20].plot(subplots=True, sharex=True, figsize=(10,10))
plt.show()

在这里插入图片描述
我们已经可以看到一些不同之处–但是为了成功地学习机器,我们必须把这些差异转化为数字。
对于提取所有特征,我们会:

from tsfresh import extract_features
extracted_features = extract_features(timeseries, column_id="id", column_sort="time")

你最终得到了一个DataFrame提取特征有1200多个不同的提取特征。我们现在将移除所有NaN值(这些值由功能计算器创建,不能用于给定的数据,例如,由于统计数据太低),然后只选择以下相关特性:

from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute

impute(extracted_features)
features_filtered = select_features(extracted_features, y)

只有大约300个特征被归类为足够相关的特征。
此外,您甚至可以使用tsfresh.extract_relevant_features()功能:

from tsfresh import extract_relevant_features

features_filtered_direct = extract_relevant_features(timeseries, y,
                                                     column_id='id', column_sort='time')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值