DataWhale 資料探勘 Task3

2021-10-22 19:57:37 字數 2711 閱讀 6917

特徵工程

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

path = './data/'

train = pd.read_csv(path + 'train.csv')

test = pd.read_csv(path + 'testa.csv')

print(train.head())

print(test.head())

train_heartbeat_df = train["heartbeat_signals"].str.split(",", expand=true).stack()

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=, inplace=true)

train_heartbeat_df["heartbeat_signals"] = train_heartbeat_df["heartbeat_signals"].astype(float)

print(train_heartbeat_df)

print('-' * 50)

處理結果如下:

train_label = train["label"]

train = train.drop("label", axis=1)

train = train.drop("heartbeat_signals", axis=1)

train = train.join(train_heartbeat_df)

print(train)

print('-' * 50)

print(train[train["id"] == 1])

print('-' * 50)

結果如下:

1、特徵抽取

tsfresh(timeseries fresh)**是乙個python第三方工具包。 它可以自動計算大量的時間序列資料的特徵。此外,該包還包含了特徵重要性評估、特徵選擇的方法,因此,不管是基於時序資料的分類問題還是回歸問題,tsfresh都會是特徵提取乙個不錯的選擇。官方文件:introduction — tsfresh 0.17.1.dev24+g860c4e1 documentation

from tsfresh import extract_features​# 特徵提取train_features = extract_features(data_train, column_id='id', column_sort='time')train_features
由於記憶體不夠,在本地未能執行跑出結果

2、特徵選擇

train_features中包含了heartbeat_signals的779種常見的時間序列特徵(所有這些特徵的解釋可以去看官方文件),這其中有的特徵可能為nan值(產生原因為當前資料不支援此類特徵的計算),使用以下方式去除nan值:

from tsfresh.utilities.dataframe_functions import impute

#去除抽取特徵中的nan值

接下來,按照特徵和響應變數之間的相關性進行特徵選擇,這一過程包含兩步:首先單獨計算每個特徵和響應變數之間的相關性,然後利用benjamini-yekutieli procedure [1] 進行特徵選擇,決定哪些特徵可以被保留。

from tsfresh import select_features

# 按照特徵和資料label之間的相關性進行特徵選擇

保留了共707個特徵

由於未能在本地執行,沒辦法單獨實驗執行過程,對於特徵工程方面仍需更多的實驗與了解

datawhale資料探勘任務六

通過之前的部落格可以看出,隨機森林的表現效果比較好。所以本次stacking融合的比較基準就是lr。至於融合,用的是隨機森林和邏輯回歸進行融合。為 任務六 使用stacking進行模型融合 構建 stacking 模型,用之前表現較好的lr和隨機森林進行模型融合 s clf stackingclas...

datawhale資料探勘課程 任務二

特徵衍生 在實際工作中,自己用到的是特徵公升維,即one hot encoding。另一種特徵衍生方法是特徵組合,比如拼接年齡 收入區間成為乙個新特徵,但是在金融行業一般不這麼做 因為可解釋性差容易不符合監管要求。計算iv函式。在機器學習的二分類問題中,iv值 information value 主...

DataWhale 資料探勘 Task2

import warnings import matplotlib.pyplot as plt import pandas as pd import pandas profiling import scipy.stats as st import seaborn as sns warnings.fi...