Datawhale-心跳信号分类预测3

  • 数据预处理
    • 时间序列数据格式处理
    • 加入时间步特征time
  • 特征工程
    • 时间序列特征构造
    • 特征筛选
    • 使用 tsfresh 进行时间序列特征处理
import pandas as pd
import numpy as np
import tsfresh as tsf
from tsfresh import extract_features, select_features
# Tsfresh(TimeSeries Fresh)是一个Python第三方工具包。 它自动计算大量的时间序列数据的特征。此外,该包包含评估这些特征对于回归或分类任务的解释能力和重要性的方法。
# 无论是基于时序数据的分类还是预测,作为特征提取的工具,tsfresh将会是一个不错的选择。
from tsfresh.utilities.dataframe_functions import impute

data_train = pd.read_csv(r'D:\Chrome_download\train.csv')
data_test_A = pd.read_csv(r'D:\Chrome_download\testA.csv')

data_train=data_train[:1000]
data_test_A=data_test_A[:1000]
data_test_A.shape

train_heartbeat_df=data_train['heartbeat_signals'].str.split(',',expand=True).stack()
#1)str.split( ) 函数 默认是以空格为分隔符,默认切割整个字符串,返回切分后元素的列表,当然了也可以自己指定 分割符和 切割次数 ggg.split('*',2)

# 2)split()正序分割列;rsplit()逆序分割列
# Series.str.split(pat=None, n=-1, expand=False)
# 参数:
# pat : 字符串,默认使用空白分割,分列的依据,可以是空格,符号,字符串等等
# n : 整型,默认为-1,既使用所有的分割点分割。就是当用于分列的依据符号在有多个的话需要指定分列的次数(不指定的话就会根据符号有几个分列几次)
# expand : 布尔值,默认为False.如果为真返回数据框(DataFrame)或复杂索引(MultiIndex);如果为假,返回序列(Series)或者索引(Index).
# ----- 如果不需要pandas为你分好列,expand=False就可以了
train_heartbeat_df = train_heartbeat_df.reset_index()
train_heartbeat_df = train_heartbeat_df.set_index("level_0")
train_heartbeat_df.index.name = None

train_heartbeat_df.rename(columns={"level_1":"time", 0:"heartbeat_signals"}
                          , inplace=True
                         )
train_heartbeat_df["heartbeat_signals"] = train_heartbeat_df["heartbeat_signals"].astype(float)
data_train_label = data_train["label"]
data_train = data_train.drop("label", axis=1)
data_train = data_train.drop("heartbeat_signals", axis=1)
data_train = data_train.join(train_heartbeat_df)                 

在这里插入图片描述

train_features = extract_features(data_train, column_id='id', column_sort='time')
train_features
from tsfresh.utilities.dataframe_functions import impute

# 去除抽取特征中的NaN值
impute(train_features)
from tsfresh import select_features

# 按照特征和数据label之间的相关性进行特征选择
train_features_filtered = select_features(train_features, data_train_label)

train_features_filtered

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值