首頁  >  文章  >  後端開發  >  透過少量程式碼即可提取大量時間序列特徵

透過少量程式碼即可提取大量時間序列特徵

王林
王林轉載
2023-04-25 14:40:081205瀏覽

傳統的機器學習演算法不能捕捉時間序列資料的時間順序。資料科學家需要執行相關的特徵工程,將資料的重要特徵捕捉到幾個指標中。產生大量的時間序列特徵並從中提取相關特徵是一項耗時且繁瑣的工作。

几行 Python 代码就可以提取数百个时间序列特征

python的tsfresh套件可以為時間序列資料產生標準的數百個通用特性。在本文中,我們將深入討論tsfresh套件的使用。

tsfresh 是一個可以產生數百個相關的時間序列特徵的開源套件。從 tsfresh 產生的特徵可用於解決分類、預測和異常值檢測用例。

tsfresh 套件提供了對時間序列資料執行特徵工程的各種功能,包括:

  • #特徵產生
  • 特徵選擇
  • 與大數據的兼容性

安裝tsfresh 也非常的簡單,官方提供了pip和conda的安裝方式:

pip install -U tsfresh# orconda install -c conda-forge tsfresh

1、特徵生成

tsfresh 包提供了一個自動特徵產生API,可以從1 個時間序列變數中產生750 多個相關特徵。產生的特徵廣泛,包括:

  • 描述性統計(平均值、最大值、相關性等)
  • 基於物理的非線性和複雜性指標
  • #數位訊號處理相關功能
  • 歷史壓縮特徵

使用tsfresh.extract_features() 函數可以為1 個時間序列變數從多個領域產生789 個特徵。

import pandas as pdfrom tsfresh import select_features# Read the time-series datadf = pd.read_excel("train.xlsx", parse_dates=['date']).set_index('date')# automated feature generationfeatures = tsfresh.extract_features(df, column_, column_sort="date")

因為特徵太多,所以具體的所有特徵的介紹請查看官方文件。

2、特徵選擇

tsfresh 套件也提供了一個基於假設檢定的特徵選擇實現,可以用來識別目標變數的相關特徵。為了限制不相關特徵的數量,tsfresh 包含了fresh演算法(fresh 代表基於可擴展假設測試的特徵提取)。

tsfresh.select_features() 函數使用者可以實作特徵選擇。

3、相容大數據

當我們有大量的時間序列資料時。 tsfresh還提供api來擴展特徵的生成/提取,以及針對大量資料的特徵選擇實現:

  • #多執行緒處理:預設tsfresh包可以將特徵產生/提取和特徵選擇在多核心上並行執行。
  • 分散式框架:tsfresh也實作了一個自己的分散式框架,將特徵計算分佈在多台機器上加快計算速度。
  • Spark相容:tsfresh也可以使用spark或Dask來處理非常大的資料。

最後總結,tsfresh可以透過幾行Python程式碼中為時間序列特性產生和選擇相關特性。它會自動從基於時間的資料樣本的多個域中提取和選擇 750 個經過實際測試的特徵。它減少了資料科學家浪費在特徵工程上的大量工作時間。

且時間序列資料是相當大的,tsfresh 也透過多執行緒、支援dask和spark來處理單機處理不了的大資料樣本。

以上是透過少量程式碼即可提取大量時間序列特徵的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除