水務一線 | XGBoost集成模型——靈活的邊界流量計日流量預測方法

2021-01-07 網易

  

  

  欄目導讀

  新一代信息技術的加速變革支撐了智慧水務的飛速發展,現代化水廠的建設為我國供水行業的整體發展帶來了很大的借鑑與思考。「水務一線」分享基層水廠、汙水廠日常工作中的科技創新、技改創新、應用創新或管理創新等,可供相關的水廠提供參考和借鑑,希望可以帶來更多思想的碰撞與火花。

  本期摘要

  流量計量的準確性,直接關係到水務企業日常運行管理的精細化水平,但受限於多方面原因,不可避免地存在一定的計量誤差,為水務企業管理能級的提升帶來瓶頸。運用XGBoost集成模型以正常工作狀態下的全數據為基礎,結合各種區域特徵因素(天氣、日期、相關正常流量計、相關正常壓力計、相關水廠、相關供水區域等)進行修正,達到誤差在2%左右的預測,對水務企業提高水量調度的精準度帶來新的選項。

  電磁流量計是基於電磁感應原理所製成的進行流量測量的專業儀器,可以對導電液體體積流量等進行精確測量。一般電磁流量計都有一圈磁線圈,當導電流體通過流量計的腔體時,會切割磁感線產生磁感應強度,將其轉換為電流,並最終轉換為流量數字。在整個過程中,必須保證磁感應強度保持相對穩定,但是在實際應用中,電磁流量會收到外部因素和內部導電流體的幹擾,導致計量失準。

  採用XGBoost集成模型構建邊界流量計流量預測模型,可以在修正流量計非正常工作狀態下計量的水量,提高工作成效。

  

  電磁流量計構造

  一 回歸建模

  1 XGBoost集成模型

  XGBoost(eXtreme Gradient Boosting),是傳統boosting方法的一種極好實現,基本原理是把數千個精度較低的樹模型組合成一個精度較高的模型。

  XGBoost的基學習器既有樹(gbtree)又有線性分類器(gblinear),從而得到帶L1+L2懲罰的線性回歸或邏輯回歸,其損失函數採用二階泰勒展開,具有高準確度、不易過擬合、可擴展性等特點,能分布式處理高維稀疏特徵。

  XGBoost算法基本原理的特性,對數據波動較大、受外界影響較大、特徵因子較多的數據集有很好的適用性,能夠在水務行業邊界流量計流量預測中取得較好的應用效果。

  
2 評價標準

  平均絕對值誤差(mean absolute error),如式(1)。

  (1)

  平均相對誤差(mean relative error),如式(2)。

  (2)

  其中:nsamples——樣本數量;

  yi——真實值;

  預測值。

  二 離散型變量數值型轉化

  在使用Python進行數據分析時,會遇到多種多樣的數據類型。如水量、氣溫等數值型的特徵變量,還會遇到天氣變化、季節氣候等離散型變量

  對於離散型的變量,必須進行數值化處理之後才能進行計算,一般的離散型變量數值型轉化有2種方法。

  (1)one-hot編碼,又稱「獨熱編碼」

  基本原理是用N位狀態寄存器編碼N個狀態,每個狀態都有獨立的寄存器位,且這些寄存器位中只有1位有效,簡單數就是每1列特徵的每1個獨立的值只能有一個狀態。

  

  處理前(a)和處理後(b)one-hot編碼

  (2)label編碼

  利用pandas計算包中的categoricals數據類型對離散新數據進行處理。Categorical類型的數據可以具有特定的順序,如:按程度來設定,「強烈同意」與「同意」、「首次觀察」與「二次觀察」。通過label編碼,將離散型變量數值化。

  

  處理前(a)和處理後(b)label編碼

  三 邊界流量計流量預測模型

  1 數據描述

  原始的流量計水量數據只有供水日期這1個特徵,單一的特徵會造成預測模型欠擬合。因此,需進一步考察挖掘影響流量計水量計量的多方面特徵,同時將日期信息細化,並進一步挖掘相關流量計、相關壓力計和相關區域水量特徵,衍生出一系列影響供水量的特徵,結合這些特徵因子和實際供水量訓練流量計流量預測模型。

  通過Pearson相關係數法計算得到各特徵與水量之間的相關性,並通過相關較高的數值型變量進一步挖掘得到取對數、開根號、求E及多項式這4個特徵值。

  2 直接預測法

  直接預測法是指直接以流量計正常工作狀態下的日水量數據為基礎,結合擴展特徵進行預測。

  以某公司某DN1000流量計2017年1月1日—2019年2月14日共775條數據為例,此流量計上游離某大型水廠的出水管較近,並受附近1個泵站的影響,幹擾較大。通過Pearson相關係數法計算得到各特徵的相關性。其中,數字越大,表明與流量計水量的相關性越大,最終取≥0.15的特徵進行最終運算。

  

  Pearson相關係數

  對相關性最高的滬太路DN500進行取對數和開根號處理,得到和log10滬太路DN500。選取相關性較高的滬太路DN500、泰和水廠和汶水泵站(進站壓力)3個特徵,進行多項式運算得式(3)。

  多項式=3×滬太路DN500+2×泰和水廠+汶水泵站(進站壓力)

  (3)

  深度挖掘構造的3個特徵通過Pearson相關係數法計算後得到較好的相關性。

  

  Pearson相關係數

  將整體數據劃分為測試集和訓練集,使用XGBoost集成模型建立某DN1000流量計日水量預測模型,模型在測試集上的平均絕對誤差(MAE)為8 276 t、平均相對誤差(MRE)為2.7%。

  3 倒推計算法

  倒推預測法是通過此流量計所在供水區域的日水量預測,倒推出此流量計的日水量。與直接預測法相比,倒推預測法的優勢在於,當無法取得流量計正常工作狀態下的日水量進行模型運算時,可以通過間接的倒推法避開直接運算流量計水量,利用總水量減去剩餘水量得到目標流量計預測水量。

  以上海市城投水務(集團)有限公司供水分公司某DN1200流量計為例,利用倒推法進行預測,使用此流量計所在供水區域2017年1月1日—2018年9月30日共638條日水量數據。

  

  Pearson相關係數

  通過Pearson相關係數法計算得到各特徵的相關性。其中,數字越大,表明與水量的相關性越大,取≥0.15的特徵進行最終運算,得到區域總日供水量的26個特徵和區域剩餘日供水量的27個特徵。

  將整體數據劃分為測試集和訓練集,使用XGBoost集成模型建立水量預測模型,模型在測試集上:總供水量的平均絕對誤差(MAE)為3 365 t、平均相對誤差(MRE)為1.5%;剩餘供水量的平均絕對誤差(MAE)為4 314 t、平均相對誤差(MRE)為2.1%。驗證結果表明,XGBoost總供水量預測模型和剩餘供水量預測模型的平均相對偏差為1.8%,總日供水量和剩餘日供水量預測模型的精度滿足計算要求,因此,二者相減的結果可以用於流量計日流量的預測。

  四 結語

  XGBoost集成模型作為機器學習領域裡重要的模型之一,通過集成若干個學習器,構造一個學習能力較強的學習器,不僅能很好地擬合訓練集,還能在測試集上有很好的表現。將XGBoost集成模型引入邊界流量計日流量預測中,非常符合邊界流量計數據波動較大、受外界影響較大、特徵因子較多的特點。最終取得的模型精度較高,有較好的泛化能力,並通過直接預測法和倒推預測法相結合的方式,可應對多種情況;靈活性較高,可應用於實際工作中,修正流量計非正常工作狀態下計量的水量,有效解決相關供水區域之間產生的水量誤差。

  作者簡介

  高赫餘,男,研究方向為機器學習在供水行業的使用,E-mial:13391109979@163.com。

  本文發表在《淨水技術》2020年第10期「『清時捷』供排水企業運行及管理成果專欄」,掃描二維碼可閱讀全文。

  「清時捷」供排水企業運行及管理成果專欄

  徵稿內容:我國基層水廠、汙水廠日常工作中的科技創新、技改創新、應用創新或管理創新等。

  特色服務:快速審稿錄用、版面費全免、快速發表優先出版、責編一對一修改指導、稿酬、清時捷杯專欄優秀論文獎。

  

  作者:高赫餘、王聖、吳瀟勇

  編輯:阮辰旼、黃如詩

  排版:西貝
校對:黎翔

  原創推薦

  點擊以下連接,閱讀更多由《淨水技術》雜誌社原創的精彩欄目

  |

  更多精彩請前往:今日頭條/網易號/搜狐/知乎/百家號/天天快報關注「淨水技術」,微博@淨水技術雜誌社。

  聯繫我們

  【會議】【廣告 】孫麗華 :15900878214

  【講座】【培訓】王佳:18817943544

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關焦點

  • 【機器學習】XGBoost算法學習小結
    例如在Kaggle的希格斯子競賽數據上,單線程xgboost比其他兩個包均要快出50%,在多線程上xgboost更是有接近線性的性能提升。由於其性能和使用便利性,xgboost已經在Kaggle競賽中被廣泛使用[1]。    xgboost是使用梯度提升框架實現高效、靈活、可移植的機器學習庫,是GBDT(GBM)的一個C++實現。
  • 資源 | XGBoost 中文文檔開放:上去就是一把梭
    中文文檔地址:http://xgboost.apachecn.org/cn/latest/英文文檔地址:http://xgboost.apachecn.org/en/latest/中文文檔 GitHub 地址:https://github.com/apachecn/xgboost-doc-zh梯度提升樹已經在實踐中證明可以有效地用於分類和回歸任務的預測挖掘
  • 我的XGBoost學習經歷及動手實踐
    每日乾貨 & 每月組隊學習,不錯過作者:李祖賢  深圳大學,Datawhale高校群成員知乎地址:http://www.zhihu.com/people/meng-di-76-92我今天主要介紹機器學習集成學習方法中三巨頭之一的
  • 從零解讀 Xgboost 算法 (原理+代碼)
    代碼匯總3.0 xgboost 如何篩選特徵重要程度3.1 xgboost完整訓練代碼xgboost 代碼調參xgboost常規面試題參考連結0.提升樹 首先要明確一點,xgboost 是基於提升樹的。
  • 中信建投證券:xgboost中證500指數增強7月持倉組合發布
    xgboost模型是一種強學習模型,其是由眾多弱學習模型集成,其採用弱學習模型為CART,即分類與回歸樹。該模型重在擬合特徵和標籤間的非線性關係。組成該模型的眾多弱學習器之間的關係是補充彌補的關係,弱學習器的訓練有先後,每個新的弱學習器的學習目標都是之前已訓練好的弱學習器的殘差。
  • 第113天: Python XGBoost 算法項目實戰
    Python 實現機器學習如果你的機器學習預測模型表現得不盡如人意,那就用XGBoost。XGBoost算法現在已經成為很多數據工程師的重要武器。XGBoost 算法說到XGBoost,不得不提GBDT(Gradient Boosting Decision Tree)。
  • Python XGBoost算法代碼實現和篩選特徵應用
    最後預測的結果是每棵樹的預測結果相加。    XGBoost算法的步驟和GB基本相同,都是首先初始化為一個常數,gb是根據一階導數ri,xgboost是根據一階導數gi和二階導數hi,迭代生成基學習器,相加更新學習器。
  • 機器學習 | 機器學習之XGBoost Part2
    當XGB使用線性模型的時候,它的許多數學過程就與使用普通的Boosting集成非常相似,因此我們在講解中會重點來講解使用更多,也更加核心的基於樹模型的XGBoost。在眾多機器學習算法中,損失函數的核心是衡量模型的泛化能力,即模型在未知數據上的預測的準確與否,我們訓練模型的核心目標也是希望模型能夠預測準確。在XGB中,預測準確自然是非常重要的因素,但我們之前提到過,XGB 的是實現了模型表現和運算速度的平衡的算法。普通的損失函數,比如錯誤率,均方誤差等,都只能夠衡量模型的表現,無法衡量模型的運算速度。
  • 【模型工具】幾種基於機器學習/深度學習的廢水流量預測方法的比較
    (左)人工神經網絡結構,(右)長短期記憶結構 研究者使用SmoteR重採樣方法解決訓練數據不平衡的問題。該方法由Torgo於2013年基於Smote重採樣方法改進而來,SmoteR是Smote for Regression的簡稱,其名稱表明SmoteR是Smote在回歸問題上的拓展。
  • 資料|陳天奇介紹Xgboost原理的PPT
    from=leiphonecolumn_res0929【 圖片來源:https://xgboost.apachecn.org/所有者:https://xgboost.apachecn.org/ 】內容簡介陳天奇介紹Xgboost原理的PPT,用於學習xgboost原理。XGBoost是一個優化的分布式梯度增強庫,旨在實現高效,靈活和便攜。
  • DN100蒸汽流量計使用方法
    DN100蒸汽流量計使用方法—適用於各種行業大口徑氣體、液體、蒸汽流量計量,也可測量含有微小顆粒、雜質的混濁液體,並可作為流量變送器用於自動控制系統中。 一、特點: 1、可以同時集成溫度、壓力補償功能。
  • 機器學習實戰|GBDT Xgboost LightGBM對比
    import xgboost as xgbimport numpy as npimport time# read data into Xgboost DMatrix formatdtrain = xgb.DMatrix(Xtrain
  • SHAP——Xgboost的歸因新境界
    所以,今天就來談談XGBOOST的可解釋性,給大家介紹一個很厲害的歸因方法SHAP,來證明一下我的科技公眾號的身份。(不是這個話題是我兩周前就想寫的,一直拖,每周末都說要寫,每周末都沒寫。直到這個周末,為了解決我的拖延症,和室友立下誓約:如果這周不發公眾號,我就給她50美元。嗯,我來了!
  • 數學推導 + 純 Python 實現 XGBoost
    XGBoost與GBDT同出一脈,都屬於boosting集成學習算法,但XGBoost相較於GBDT要青出於藍而勝於藍。XGBoost的全程為eXtreme Gradient Boosting,即極端梯度提升樹。
  • 德爾塔巴流量計的保養方法
    德爾塔巴流量計是一種插入式流量測量儀表,在多個行業中都有一定的應用。用戶在使用德爾塔巴流量計的過程中都會產生一定的汙垢以及磨損,這些問題如果經過時間的累積是很容易造成德爾塔巴流量計的無法使用的。所以我們在使用的過程中對於德爾塔巴流量計的保養是必不可少的,那麼德爾塔巴流量計的保養方法是什麼呢?下面小編就來為大家具體介紹一下吧。
  • 如何正確地選擇流量計測量臭氧發生器中的流量?
    臭氧發生器開始工作時,將無油空氣壓縮機中的空氣壓進臭氧發生器的冷卻器和儲氣罐,空氣通過無熱再生乾燥裝置並由流量計控制其氣體流量和速度,由此氣源進入臭氧發生單元。在臭氧發生器上經常要使用玻璃轉子流量計來測量臭氧的流量,那麼如何正確的選擇一款流量計測量臭氧呢?
  • 窯爐中熱空氣流量測量用哪種流量計好,看看窯爐專用V錐流量計
    窯爐中使用的氣體有很多種,像窯爐中的熱空氣用哪種流量計來測量呢?答:解決窯爐中的熱空氣流量測量,可以使用窯爐專用V錐流量計來測量的,V錐流量計是根據差壓原理來計量的,有著測量精度高,穩定性好的優勢。窯爐氣體中的熱空氣與天然氣流量測量,主要遇到的難點為無法滿足1:10配比,無法達到最好的燃燒比,而使用窯爐專用V錐流量計來測量,可有效地提高燃燒比,節省能源,大大提高了現場的工作效率。
  • 100天搞定機器學習|Day61 手算+可視化,終於徹底理解了 XGBoost
    我們已經學習了XGBoost淵源及優點、模型原理及優化推導、模型參數解析:100天搞定機器學習|Day60 遇事不決,XGBoost,文章有點太枯燥,大家可能對其中的公式推導和參數還不甚理解。#本文用到的庫import numpy as npimport pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn import preprocessingfrom xgboost.sklearn
  • 流量計原理
    隨著工業生產的發展,對流量測量的準確度和範圍的要求越來越高,流量測量技術日新月異。為了適應各種用途,各種類型的流量計相繼問世。目前已投入使用的流量計已超過100種。  流量計發展到今天雖然已日趨成熟,其種類仍然極其繁多,然而至今尚無一種對於任何場合都適用的流量計。 每種流量計都有其適用範圍,也都有局限性。
  • 機器學習面試中最常考的樹模型(附答案)
    5、樹集成模型有哪幾種實現方式?(貝殼)boosting和bagging的區別是什麼?(知乎、阿里)樹集成模型主要有兩種實現方式,分別是Bagging和Boosting。二者的區別主要有以下四點:1)樣本選擇上:Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的.