太棒了! FaceBook 開源全網第一個時序王器 Kats !

太棒了! FaceBook 開源全網第一個時序王器 Kats !

歡迎關注 @Python與數據挖掘 ,專注Python、數據分析、數據挖掘、好玩工具!

時間序列分析建模是數據科學和機器學習的一個重要的領域,在電子商務、金融、供應鏈管理、醫學、氣象、能源、天文等諸多領域有著廣泛的應用。 目前時間序列分析以及建模的技術非常多,但相對散亂,本次 FaceBook 開源了 Kats,它是一款輕量級的、易於使用的、通用的時間序列分析框架,包括:預測、異常檢測、多元分析和特徵提取嵌入。

Kats 是第一個開發標準並連接時間序列分析各個領域的綜合 Python 庫,使用者可以在這裡探索其時間序列數據的基本特徵,預測未來值,監視異常,並將其合併到ML模型和pipeline中。 它在時間序列的表現非常優秀,歡迎大家收藏學習,喜歡點讚支援。

簡介

1. Kats的優勢

Kats是一個分析時間序列資料的工具箱,特點是:

  • 輕量級;
  • 易於使用;
  • 通用;

可以用來執行時間序列分析。

2. Kats的功能

Kats的核心四大功能包括:

  • 模型預測:Kats提供了一套完整的預測工具,包括10+個單獨的預測模型、ensembling、自監督學習(meta-learning)模型、backtesting、超參數調整和經驗預測區間。
  • 檢測:Kats支援檢測時間序列數據的各種模式的功能,包括季節性、異常值、變化點和緩慢的趨勢變化檢測。
  • 特徵提取與嵌入:Kats中的時間序列特徵(TSFeature)提取模組可以產生65個具有明確統計定義的特徵,這些特徵可以應用於大多數機器學習(ML)模型,如分類和回歸。
  • 使用的功能:Kats還提供了一組有用的實用程式,例如時間序列模擬器。

1、預測案例

# pip install kats

importpandasaspdfromkats.constsimportTimeSeriesDatafromkats.models.prophetimportProphetModel,ProphetParams# take air_passengers data as an exampleair_passengers_df=pd.read_csv("./data/air_passengers.csv",header=0,names=["time","passengers"],)air_passengers_df.head()
# convert to TimeSeriesData objectair_passengers_ts=TimeSeriesData(air_passengers_df)# create a model param instanceparams=ProphetParams(seasonality_mode='multiplicative')# additive mode gives worse results# create a prophet model instancem=ProphetModel(air_passengers_ts,params)# fit model simply by calling m.fit()m.fit()# make prediction for next 30 monthfcst=m.predict(steps=30,freq="MS")fcst.tail()

2、時間序列檢測案例

異常改變點的檢測

importnumpyasnpfromkats.constsimportTimeSeriesDatafromkats.detectors.cusum_detectionimportCUSUMDetector# simulate time series with increasenp.random.seed(10)df_increase=pd.DataFrame({'time':pd.date_range('2019-01-01','2019-03-01'),'increase':np.concatenate([np.random.normal(1,0.2,30),np.random.normal(2,0.2,30)]),})# convert to TimeSeriesData objecttimeseries=TimeSeriesData(df_increase)# run detector and find change pointschange_points=CUSUMDetector(timeseries).detector()df_increase.groupby('time')['increase'].first().plot()

3、時間序列特徵

# Initiate feature extraction classfromkats.tsfeatures.tsfeaturesimportTsFeatures# take air_passengers data as an exampleair_passengers_df=pd.read_csv("./data/air_passengers.csv",header=0,names=["time","passengers"],)# convert to TimeSeriesData objectair_passengers_ts=TimeSeriesData(air_passengers_df)# calculate the TsFeaturesfeatures=TsFeatures().transform(air_passengers_ts)

當然,如果你是剛入門程式設計的小白,需要夯實基礎知識,不用想了,這個Python入門課非常適合你。

參考文獻

  1. engineering.fb.com/2021
  2. github.com/facebookrese
  3. Kats - Time Series Forecasting By Facebook

文章推薦

【建議收藏】必知必會! Python 中最流行的十個標準庫!

實戰案例! 我用《覺醒年代》做數據分析!

4 款 Python 數據探索性分析(EDA)工具包,總有一款適合你

微軟面向初學者ML課程來了,Github一天狂攬2000+星!

熬了半宿,整理了 34 個 Python 自動化辦公庫!

時間序列預測的7種Python工具包,總有一款適合你!

強烈推薦! 斯坦福講師出版《機器學習面試》書稿,涵蓋200+考點!

【視頻+PPT】2021李宏毅老師40節機器學習課程已更新完畢!

超級乾貨! 史上最全數據分析學習路線(附資源下載)

再見「黑匣子模型」! SHAP 可解釋 AI (XAI)實用指南來了!

乾貨 | 2021年機器學習不容錯過的14個部落格

超讚! 20個炫酷的數據可視化大屏(含源碼


整理不易,有所收穫,點個讚和愛心❤️,更多精彩歡迎關注

What do you think?

Written by marketer

Django入門,學會這些就夠了!

React Fiber很難? 六個問題助你理解 React Fiber