search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

基於Python的開源預測工具的實踐

最近又發現一個很有意思的工具——facebook開源的大規模預測框架Prophet,據說它生成的預測結果足以和專業數據分析師媲美

從查閱的資料來看,Prophet開源時日不久,難怪網上很少有以實際應用來介紹的資料。就跟當初在baidu上查不到pandas資料那時候一樣,米哥打算小試一把,用tushare網站過去的真實訪問流量做一個未來預測,以簡單的用法將facebook這個工具推薦給大家,希望對大家有一個啟發。更牛逼的應用期待大家更加深入的研究和實踐。

介紹

根據facebook公開的白皮書介紹,Prophet實質上是一個可加性回歸模型(additive regression model),主要由四個核心構成:

  • 分段線性或者 logistic 增長曲線趨勢,Prophet可以通過從數據選擇變化點,自動探測變化趨勢。

  • 按年為周期使用傅里葉級數(Fourier series)建模。

  • 按周為周期使用虛變數(dummy variables)建模。

  • 支持用戶提供的重要節假日列表。

Prophet 針對的是商業預測任務,適用於具備以下特徵的場景:

  • 針對每小時、每天或每星期的觀察頻次,有至少數月(理想情況的一年)的歷史記錄。

  • 多重顯著的「人類層級」周期性:星期X以及年份。

  • 日期間隔不規則的重要節日,需要事先得知。

  • 觀察缺失或是異常值在合理範圍內。

  • 歷史趨勢變化,比如產品發布或者改寫記錄(logging changes)。

  • 符合非線性增長曲線的趨勢,有天然上、下限或者飽和點。

對於以上官方的套話,米哥看的似懂非懂,反正經過一番折騰后,米哥用一句話總結一下它的優點吧:使用過程令人髮指的簡單!如果預測結果相對可靠,那簡直就是逆天了。

安裝

Prophet的安裝很簡單,一行代碼搞定。

pip install fbprophet

但是!Prophet嚴重依賴pystan包,在安裝之前必須先安裝好這個包,雖然同樣也是一行pip來安裝,但是在windows上安裝pystan + prophet就是一種心靈折磨,各種坑爹的坑。為了讓大家少躺坑,如果您打算在windows上嘗試的話,米哥這裡提示幾點:

1、最好選用winows7系統

2、使用Python3.5+ (用Anaconda發行版

3、確認已安裝Visual C++ Build Tools 2015

4、Prophet最好通過clone源代碼來setup install

數據準備

本實驗通過tushare在cnzz上的pv流量統計數據來做一個實例,下載了從2016年1月1日至今的流量數據,原始數據格式如下:

以此來預測未來一年tushare的訪問流量,數據經過整理存儲在一個csv文件里並通過pandas讀取數據。

對pv值進行對數處理,然後查看過去一年的趨勢情況。

有一點值得注意的是,Prophet對輸入數據的格式有要求,時間列需命名ds,數值命名為y。

預測實現

首先需要初始Prophet對象,並將pandas的DataFrame數據傳入給prophet,數據裝載過程很簡單也相對較快。

然後我們告訴預測模型我們需要預測未來多久的結果,這裡設定一年(即365天)並執行預測命令。

預測的結果依然是一個DataFrame格式的數據,結果值列名為yhat,同時給出了最大和最小值。

通過繪圖功能,我們來看一下預測效果。

通過weekly函數我們看一下,周末兩天訪問量最少。

m.plot_weekly(forecast)

m.plot_trend(forecast)

有興趣獲得以上完整代碼和演示數據文件的同學,請在微信公眾號「挖地兔」私信回復「預測」兩個字自動獲得下載鏈接。

更多乾貨請關注微信公眾號:挖地兔



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦