傳統的機器學習演算法不能捕捉時間序列資料的時間順序。資料科學家需要執行相關的特徵工程,將資料的重要特徵捕捉到幾個指標中。產生大量的時間序列特徵並從中提取相關特徵是一項耗時且繁瑣的工作。
python的tsfresh套件可以為時間序列資料產生標準的數百個通用特性。在本文中,我們將深入討論tsfresh套件的使用。
tsfresh 是一個可以產生數百個相關的時間序列特徵的開源套件。從 tsfresh 產生的特徵可用於解決分類、預測和異常值檢測用例。
tsfresh 套件提供了對時間序列資料執行特徵工程的各種功能,包括:
安裝tsfresh 也非常的簡單,官方提供了pip和conda的安裝方式:
pip install -U tsfresh# orconda install -c conda-forge tsfresh
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")
因為特徵太多,所以具體的所有特徵的介紹請查看官方文件。
tsfresh 套件也提供了一個基於假設檢定的特徵選擇實現,可以用來識別目標變數的相關特徵。為了限制不相關特徵的數量,tsfresh 包含了fresh演算法(fresh 代表基於可擴展假設測試的特徵提取)。
tsfresh.select_features() 函數使用者可以實作特徵選擇。
當我們有大量的時間序列資料時。 tsfresh還提供api來擴展特徵的生成/提取,以及針對大量資料的特徵選擇實現:
最後總結,tsfresh可以透過幾行Python程式碼中為時間序列特性產生和選擇相關特性。它會自動從基於時間的資料樣本的多個域中提取和選擇 750 個經過實際測試的特徵。它減少了資料科學家浪費在特徵工程上的大量工作時間。
且時間序列資料是相當大的,tsfresh 也透過多執行緒、支援dask和spark來處理單機處理不了的大資料樣本。
以上是透過少量程式碼即可提取大量時間序列特徵的詳細內容。更多資訊請關注PHP中文網其他相關文章!