【笔记】TsFresh

最近在搞华为的KPI的竞赛,从没搞过时间序列真是一头雾水,姑且做点记录吧

TsFresh

tsfresh(听说)是很常用的,从时间序列中提取特征的库。安装的话我直接从pycharm的设置那里加的。

样本数据下载

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是DataFrame类型
y是bool类型的(但是我不知道这是啥?label吗?)

特征提取

from tsfresh.feature_extraction import extract_features
extracted_features_0 = extract_features(timeseries, column_id="id", column_sort="time")
extracted_features_0.shape

这里我试自己的数据的时候,time那列写的value,然后不知道为什么总说我value那里没值,把column_sort这个参数删了后又可以跑通了。但是column_id是不可以省略的,就算全是1也得写一列1。

这个函数还可以设一些参数

settings = ComprehensiveFCParameters()
settings = EfficientFCParameters()
settings = MinimalFCParameters()
# 三个随便选一个,特征数一个比一个少
extracted_features_0 = extract_features(timeseries, column_id="id", column_sort="time",default_fc_parameters=settings)

特征过滤

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) #特征选择

特征获取和过滤一起进行

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

这一步据大佬所说,得出的结果和上面两个分开做的没什么不同。但是由于我没设置好y还是什么原因的,就只停在了特征提取的过程,没有自己试验过。
另:extract_relevant_features和extract_features一样,可以有很多参数设置,都是一样的。

关于滑窗
我能想到的方法就是写个for循环截取固定长度的数据,将那些时间序列的id全设置成1,得到一个【1 * 特征数量】的矩阵,最后再合并特征矩阵。

缺点是,最后窗口长度的数据没办法计算特征了,要么扔掉几个时间序列的点,要么就复制后面的特征至相同长度。我问了一下老师,时间序列如果够长的话就删了吧。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值