支持Python!非死book開源預測工具Prophet
雷鋒網消息:前天,非死book 宣布開源一款基于 Python 和 R 語言的數據預測工具——“Prophet”,即“先知”。取名倒是非常直白。
非死book 表示,Prophet 相比現有預測工具更加人性化,并且難得地提供 Python 支持。另外,它生成的預測結果足以和專業數據分析師媲美。
非死book 把預測任務的流程用下圖展示出來:
從圖中可以看出,預測共分四個流程:建模,預測評估,表面問題和人工檢查。
在建模階段,當前可用的 Python 工具包寥寥無幾。最廣為人知的 “ forecast” ,谷歌開發的 CausalImpact, 以及推特的 AnomalyDetection,均是基于 R 語言。很顯然,非死book 想要改變這一點。
從 非死book 官方聲明來看,推出 Prophet,是希望用它來替代 forecast,成為最受歡迎的預測工具。雷鋒網(公眾號:雷鋒網)了解到,相對于后者,非死book 表示 Prophet 有兩大優點:
-
開發合理、準確的預測模型更加直接。
Prophet 包含許多預測技術,比如 ARIMA 和 exponential smoothing。每一項工具都有它的長處、短處和調節參數。非死book 表示,選擇不恰當的模型或參數會造成讓人難以滿意的結果;而即便是有經驗的數據分析師在選擇模型、參數上也經常遇到困難。言下之意是,Prophet 將著重改善這方面的體驗,讓模型、參數的選擇更直觀。
-
用 Prophet 做出的預測,能夠以對普通人更加直觀的方式進行定制。
Prophet 有針對周期性的平滑參數(smoothing parameters for seasonality),允許開發者調整與歷史周期的匹配程度。它還有針對趨勢的平滑參數,能夠調整對歷史趨勢變化的緊跟程度。對于增長曲線(growth curves),開發者能人工設置上限,即 capacities,把關于“該預測如何增長(或下降)”的先驗信息注入進去。最后,開發者還能設置不規則日期,來對超級碗、感恩節、黑色星期五之類的特殊日子進行建模。
組成部分
在它的核心,Prophet 是一個可加回歸模型(additive regression model),它有四個組成部分:
-
一個分段的線性或邏輯增長曲線趨勢。Prophet 通過提取數據中的轉變點,自動檢測趨勢變化。
-
一個按年的周期組件,使用傅里葉級數(Fourier series)建模而成。
-
一個按周的周期組件,使用虛擬變量(dummy variables)。
-
用戶設置的重要節日表。
適用范圍
雷鋒網獲知,Prophet 針對的是商業預測任務,適用于具備以下特征的場景:
-
針對每小時、每天或每星期的觀察頻次,有至少數月(理想情況的一年)的歷史記錄。
-
多重顯著的“人類層級”周期性:星期X以及年份。
-
日期間隔不規則的重要節日(比如超級碗),需要事先得知。
-
觀察缺失或是異常值在合理范圍內。
-
歷史趨勢變化,比如產品發布或者改寫記錄(logging changes)。
-
符合非線性增長曲線的趨勢,有天然上、下限或者飽和點。
想要進一步了解 Prophet 的讀者,請參考以下鏈接:
非死book 博客:https://research.fb.com/prophet-forecasting-at-scale/
使用指南:https://非死bookincubator.github.io/prophet/docs/quick_start.html
文件:http://非死bookincubator.github.io/prophet/
via 非死book
來自: 雷鋒網