當前位置:
首頁 > 科技 > 資料庫+AI是如何預測未來的?

資料庫+AI是如何預測未來的?

導語 通過歷史數據,基於時間序列來預測未來。

我們生活中很多數據是有時間維度的。比如說天氣或者股票價格。對於這種帶有時序的數據,有一種基於時間序列的預測模型---Prophet。

https://github.com/facebook/prophet

上面是項目的地址,需要的小夥伴可以去上面一看究竟。而我主要做的是通過該模型來預測騰訊雲資料庫存儲量變化的未來趨勢。下來就來看看Prophet的強大之處吧。

前面說到Prophet是基於時間序列的模型,所以說時間是裡面最重要的一個維度(如果您需要預測自己的數據,那麼必須是pandas固定的時間格式)。現在就開始直接看下結果吧。

縱軸是騰訊雲某類型資料庫的購買總量,可以看到隨著時間的增長,資料庫的購買總量還是在不斷增長的。而Prophet所要做的就是根據數據的歷史表現來估計數據未來的走勢。

實驗中我選取了2018年1月到6月的數據作為測試集。黑點為真實值,藍色區域為模型預測的估計值,可以看到隨著時間的推移,總體估計容量的趨勢是增長的,但是隨著時間的推移,不確定性區域越來越大(圖中藍色區域),也可以認為是隨著時間的推移,不確定性越來越大。下面來看看真實值與模型預測值是否準確:

圖中6月份以後的數值是對模型的測試集,紅色區域就是模型未見過的數值與估計值的相對情況。可以明顯的看到,該模型估計還是相當準確的呀。可能有很多小夥伴要問了,為啥4月末會出現一個階段式的跳躍呢?就是我們騰訊雲的一個大客戶拼多多最近有比較大的手筆。

當然該模型不僅僅可以估計進幾個月,也可以估計更長的時間,但是隨著時間的推移,可能就更不準確了。

重點來了!!!

這東西就是預測一個容量那麼簡單么?

當然不是了。。主要分兩大方面:

1.可以為我們自己提供服務:

(1)可以為我們提供潛在客戶的估計。(比如明顯可以看到某個公司近幾個月飛速購買資料庫服務,但是該公司不是我們的大客戶。所以很難通過簡單的容量排行榜找到他。但是Prophet可以估計出誰可能在後面變成大客戶,這樣就可以告訴架構師誰是我們的潛在客戶。)

(2)還可以通過對我們資料庫的總量或者單個客戶的資料庫總量進行估計,告訴大概什麼時候客戶需要擴容了,讓我們對自己的服務有更好的準備。

2.也可以為我們的客戶服務:

(1)客戶可以通過對自習所選的維度進行分析,相當於一個saas服務。

(2)客戶還可以對自己所買的CVM相關的用量進行分析,以便選擇最合理的配置。

最後簡單說下模型內部結構。

Prophet是一個累加回歸模型(additiveregressionmodel)模型的整體構建如下:

y(t) = g(t)+s(t)+h(t)+et

主要有三部分組成:growth(增長趨勢)、seasonality(季節趨勢)以及holidays(節假日對預測值的影響)。其中g(t)表示增長函數,用來擬合時間序列中預測值的非周期變化。用分段線性或邏輯增長曲線擬合的趨勢成分。Prophet會從數據中找出轉折點,自動檢測趨勢變化s(t)用來表示周期性變化,比如每周、每年中的季節等。用傅里葉級數建模的季節成分,以年為單位。用虛擬變數表示的季節成分,以周為單位h(t)表示時間序列中那些潛在的具有非固定周期的節假日對預測值造成的影響。et為雜訊項。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

劉連響:為什麼看好小程序音視頻在教育行業的應用?
小白也能玩轉Kubernetes 你與大神只差這幾步

TAG:雲加社區 |