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