Facebook 宣佈開源一款基於 Python 和 R 語言的數據預測工具――「Prophet」,即「先知」。取名卻是很是直白。工具
Facebook 表示,Prophet 相比現有預測工具更加人性化,而且可貴地提供 Python 支持。另外,它生成的預測結果足以和專業數據分析師媲美。ci
在建模階段,當前可用的 Python 工具包寥寥無幾。最廣爲人知的 「 forecast」 ,谷歌開發的 CausalImpact, 以及推特的 AnomalyDetection,均是基於 R 語言。很顯然,Facebook 想要改變這一點。開發
從 Facebook 官方聲明來看,推出 Prophet,是但願用它來替代 forecast,成爲最受歡迎的預測工具。相對於後者,Facebook 表示 Prophet 有兩大優勢:數據分析
開發合理、準確的預測模型更加直接。it
Prophet 包含許多預測技術,好比 ARIMA 和 exponential smoothing。每一項工具都有它的長處、短處和調節參數。Facebook 表示,選擇不恰當的模型或參數會形成讓人難以滿意的結果;而即使是有經驗的數據分析師在選擇模型、參數上也常常遇到困難。言下之意是,Prophet 將着重改善這方面的體驗,讓模型、參數的選擇更直觀。io
用 Prophet 作出的預測,可以以對普通人更加直觀的方式進行定製。ast
Prophet 有針對週期性的平滑參數(smoothing parameters for seasonality),容許開發者調整與歷史週期的匹配程度。它還有針對趨勢的平滑參數,可以調整對歷史趨勢變化的緊跟程度。對於增加曲線 (growth curves),開發者能人工設置上限,即 capacities,把關於「該預測如何增加(或降低)」的先驗信息注入進去。最後,開發者還能設置不規則日期,來對超級碗、感恩節、黑色星期五之類的 特殊日子進行建模。變量
組成部分model
在它的核心,Prophet 是一個可加回歸模型(additive regression model),它有四個組成部分:技術
一個分段的線性或邏輯增加曲線趨勢。Prophet 經過提取數據中的轉變點,自動檢測趨勢變化。
一個按年的週期組件,使用傅里葉級數(Fourier series)建模而成。
一個按周的週期組件,使用虛擬變量(dummy variables)。
用戶設置的重要節日表。