拓端tecdat|電力消耗模型構建、分析和預測

原文連接:http://tecdat.cn/?p=23392 

做者:Minghong Xu

某製藥公司每一年要花費大量的資金在電費上,因爲電力公司的業務改革,該藥企能夠在一年或月開始時向電力公司預購必定數量的電力,若是實際消耗大於該值,則每多消耗一度電要付比之前更多的電費,若是實際上沒有消耗這麼多,也不會退還多餘的電費,所以該公司打算預測將來的電力消耗以節省資金消耗。python

解決方案

任務/目標

根據製藥公司要求,運用多種數據源分析實現精準電力消耗預測。算法

數據源準備

爲了預測電力的消耗,將電的主要使用分爲生產車間的消耗,空調的電力消耗和其它消耗,其它消耗視爲一個常量,在最後添加上去。segmentfault

數據處理

在實際收到的數據中,有不少日期的某些電錶的耗電量和某些車間的產量並無被記錄下來,所以使用拉格朗日插值法來補足中間的缺口。測試

特徵轉換

把不能處理的特徵作一些轉換,處理成算法容易處理的乾淨特徵舉例以下:優化

時間屬性。就時間屬性自己來講,對模型來講不具備任何意義,須要把日期轉變成到天,年、月、日、周僞變量。url

電量屬性。因爲收集的是單一電錶的數據指標,因此合併相同類型的數據,做爲車間和空調的總耗電來參與模型建設。spa

產量屬性。因爲車間生產了數種藥品,且不一樣藥品的每箱重量不一樣。有的工序的耗電量只和重量有關,有的工序的耗電量之和箱數有關,所以咱們兩種計量方式都要用上。rem

構造

劃分訓練集和測試集

考慮到最終模型會預測未來的某時間段的耗電量,爲了更真實的測試模型效果,以時間來切分訓練集和測試集。具體作法以下:用軟件隨機劃分80%的數據做爲訓練集,剩下的20%做爲測試集。get

建模

一元線性迴歸在考慮一些工序的耗電時,容易發現機器的耗電量和產量是呈線性關係的,此時就使用一元線性迴歸模型來擬合。(y=kx+b)產品

一元非線性迴歸,在工廠裏爲了維持生產車間的恆溫,使用氣暖和空調來進行調溫。氣暖消耗的是蒸汽,只有空調纔會耗電。當室內溫度高於必定值時,空調纔會開啓;室內的溫度越高,空調的功率越大,所以空調耗電和睦溫是一元非線性關係。(y=f(x))

多元線性迴歸,有的生產工序不單單和產品的重量有關,還和產品的箱數有關,此時就使用二元線性模型來擬合。(z=k1x+k2y+b)

模型優化

1.上線以前的優化:特徵提取,樣本抽樣,參數調參。

2.上線以後的迭代,根據實際的A / B測試和業務人員的建議改進模型

項目結果

在此案例中,分別用三種模型來計算耗電量的三個份量。

用一元非線性迴歸,計算空調耗電量,其可視化圖形以下,其中這裏的氣溫是日最高氣溫(關係式省略):

用一元線性迴歸,計算出部分機器的耗電量和

產量的關係圖形以下(關係式省略):

 

 

這是三種機器的耗電量和產量的關係圖,能夠看到當產量爲0時,機器待機時也有必定的耗電量。

用二元線性迴歸模型,計算出最後一種機器和產品重量和箱數的關係:

上面是截面圖,下面是散點圖

能夠看出,幾種耗電量的模型基本均可以較完美的擬合實際狀況,置信度都有95%以上。這個模型主要有兩個用途,一是預測,就能夠利用模型和計劃產量等因素來預測將來的耗電量,從而實現精確購電。二是異常檢測,若是有一天預測值和實際耗電量有較大誤差的時候,說明機器極可能出現了故障,要及時檢修。

預測模型僅僅是算法計算下的結果,在實際生活中,這樣的預測值僅僅只能做爲參考,在實際生活中還有更多的因素影響結果,須要從多方面來考量。


最受歡迎的看法

1.在python中使用lstm和pytorch進行時間序列預測

2.python中利用長短時間記憶模型lstm進行時間序列預測分析

相關文章
相關標籤/搜索