时序数据处理工具-时间序列数据特征提取TsFresh
時間序列數據特征提取 TsFresh
簡介
Tsfresh(TimeSeries Fresh)是一個Python第三方工具包。 它自動計算大量的時間序列數據的特征。此外,該包包含評估這些特征對于回歸或分類任務的解釋能力和重要性的方法。無論是基于時序數據的分類還是預測,作為特征提取的工具,tsfresh將會是一個不錯的選擇。
安裝
使用pip安裝即可。
pip install tsfresh簡單使用
數據集
該包提供了一個機器人故障的數據集,可以加載用于嘗試使用。(這個數據集不大)點擊鏈接下載后放置到該包配置的data文件夾下(user文件夾中,實在找不到數據集可以私戳我)。
編輯環境
我這里使用Jupyter Notebook,其實什么環境都是可以的。
教程步驟
導入數據集
import tsfresh 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()數據探索
- 訓練數據
對于特征集,id是不同的機器人標識,F_x到T_z是時序數據標識,也就是說,對于F_x這個特征,id為1的機器人有15個數據記錄,按照time列的大小排序,其余F_y等也是如此。(注意:有時候時序數據不會這么友好,而是在一條記錄中給出的) - 測試數據
對于標簽集,利用id標識某個機器人是否故障。
特征工程
通過如下代碼提取時間特征。
提取過程會實時顯示進度,應該是使用tqdm模塊。
提取結果如下圖所示。
可以看到提取特征之后id相同的特征序列合一了,但是每一個id的數據列數非常大,這些就是提取得到的特征。如id=1的數據關于F_x有15個數據,現在對著15個數據做統計學處理得到15個數據的平均值、方差等,每個值都是一列,其他F_y等也是如此,所以維度會很大。
簡單過濾
不是所有統計值都有意義的,觀察特征提取的數據集可以發現有很多無意義的控制,可以刪除。(根據y集將相關性低的去除),代碼如下。
上述代碼的結果為從4764列減少到了631列,這個降維還是比較有效的。
直接提取加過濾
可以使用如下代碼。
結果和上面是一致的,現在你可以使用特征提取的數據集去訓練模型了。
補充說明
只是按照官方文檔說明了tsfresh最淺顯的功能,事實上,這個包特征提取能力要強大太多了。更詳細的內容可以查看官方教程(英文版,可以使用Chrome自帶的翻譯)。
總結
以上是生活随笔為你收集整理的时序数据处理工具-时间序列数据特征提取TsFresh的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫-代理ip池建立
- 下一篇: 动态规划算法-04最长递增子序列问题