【数据挖掘】心跳信号分类预测 之 My_Task3特征工程

Table of Contents

3.1 学习目标

  • 学习时间序列数据的特征预处理方法
  • 学习时间序列特征处理工具Tsfresh(TimeSeries Fresh) 的使用

3.2 内容介绍

数据预处理

  • 时间序列数据格式处理
  • 加入时间步特征time

特征工程

  • 时间序列特征构造
  • 特征筛选
  • 使用tsfresh

3.3 代码示例

3.3.1 导入包并读取数据

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

# 包导入
import pandas as pd
import numpy as np
import tsfresh as tsf
from tsfresh import extract_features,select_features
from tsfresh.utilities.dataframe_functions import impute
# 数据读取
data_train = pd.read_csv("train.csv")
data_test_A = pd.read_csv("testA.csv")

print(data_train.shape)
print(data_test_A.shape)
(100000, 3)
(20000, 2)

3.3.2 数据预处理

  • 对心电特征进行行列处理,同时为每个心电信号加入时间步特征time
  • reset_index()和set_index()的使用
train_heartbeat_df = data_train["heartbeat_signals"].str.split(",",expand=True).stack()
train_heartbeat_df
0      0      0.9912297987616655
       1      0.9435330436439665
       2      0.7646772997256593
       3      0.6185708990212999
       4      0.3796321642826237
                     ...        
99999  200                   0.0
       201                   0.0
       202                   0.0
       203                   0.0
       204                   0.0
Length: 20500000, dtype: object
  • 重新设置索引 且变成了数据框的形式
train_heartbeat_df = train_heartbeat_df.reset_index()  
train_heartbeat_df
level_0 level_1 0
0 0 0 0.9912297987616655
1 0 1 0.9435330436439665
2 0 2 0.7646772997256593
3 0 3 0.6185708990212999
4 0 4 0.3796321642826237
... ... ... ...
20499995 99999 200 0.0
20499996 99999 201 0.0
20499997 99999 202 0.0
20499998 99999 203 0.0
20499999 99999 204 0.0

20500000 rows × 3 columns

  • 将level_0 设置为索引
train_heartbeat_df =  train_heartbeat_df.set_index("level_0")
train_heartbeat_df
level_1 0
level_0
0 0 0.9912297987616655
0 1 0.9435330436439665
0 2 0.7646772997256593
0 3 0.6185708990212999
0 4 0.3796321642826237
... ... ...
99999 200 0.0
99999 201 0.0
99999 202 0.0
99999 203 0.0
99999 204 0.0

20500000 rows × 2 columns

  • 将索引的名字置空,感觉就好像是扔掉了
train_heartbeat_df.index.name = None
train_heartbeat_df
level_1 0
0 0 0.9912297987616655
0 1 0.9435330436439665
0 2 0.7646772997256593
0 3 0.6185708990212999
0 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

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

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

打赏作者

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

抵扣说明:

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

余额充值