張麗華,張偉民,劉 春,賈美娟,楊 瑞,鄒雨軒
(1大慶師范學院 計算機科學與信息技術學院,黑龍江 大慶 163712;2大慶油田有限責任公司試油試采分公司,黑龍江 大慶 163712)
隨著電力行業負荷管理調整政策出臺,以及信息化水平的不斷提高,重點行業(如冶金、石油開采等)因電量數據殘缺與分類范疇不明等問題,得到了極大的改善。從而為開展電力需求等各項指標相關聯問題的研究工作提供了重要的數據基礎,使該類研究工作的開展成為可能。負荷的大小與特征,對于電網規劃及電網運行管理,都是極為重要的因素。所以,對負荷的變化和特點,事先估計是電力系統規劃與運行研究的重要內容。
本文采用數據挖掘技術,對某地區主要行業各類用電負荷的特性及電力負荷特性曲線、指標等因素進行分析,有利于全面掌握該地區的用電結構及用電特征。其研究結果可應用于電力營銷的用戶分類、電費預警等相關工作中。通過進一步研究,負荷特性指標數據還可挖掘得到統計指標間潛在的內在規律,給電力系統負荷預測、電網規劃和安全穩定運行提供相應的參考依據。
數據挖掘,是指基于數據庫原理、云技術、機器學習、人工智能、現代統計經濟學等跨學科的綜合技術。伴隨著所涉及學科的增多,其實用價值及應用可在很多領域加以展現。所相關聯涉及到的算法也多種多樣,諸如神經網絡、決策樹、基于統計學習理論的支持向量機、分類回歸樹和關聯分析等。數據挖掘的內容主要包括分類、關聯分析、聚類和異常檢測等。數據挖掘技術[1]是綜合了傳統數據分析法與新型復雜算法的新方法,該方法能在大型數據存儲庫之中,自動的發現有用信息。數據挖掘作為數據庫知識發現(KDD)不可缺少的一部分,在整個數據庫知識發現過程中發揮著重要作用[2]。
“大數據”時代的數據挖掘,是從大量數據的定義中發現有意義的模式或知識。數據挖掘離不開數據庫技術的發展和成熟,具體地說,對數據庫中的原始數據進行一系列的計算和分析,得到有用的信息。該過程通常包括數據預處理、數據挖掘、后處理3個方面。其中,數據預處理是指將原始數據轉換成一種適合分析的形式,包括多數據源的數據融合、數據清理、尺寸標注等。后處理是指對模型預測的結果進行進一步的處理和推導。
本文主要分析電力負荷(主要為負荷曲線)的相關特性,對不同用電特性的用戶加以區分。目前利用配用電數據進行異常用戶檢測、需求側管理與能效管理、用電客戶精細分類等都需要對負荷曲線進行聚類分析。因此,有必要通過對負荷曲線的聚類對其特性進行分類研究。
聚類分析是對描述對象的信息和相似性進行分析和分組。常用的聚類方法包括K均值、凝聚層次聚類和DBSCAN聚類等方法。其作為數據挖掘中數據篩選的重要方法,在電力行業中也開始廣泛的應用。
聚類分析是對描述對象的信息進行分析,按照數據對象的相似性進行分組。常用的聚類方法包括K均值、凝聚層次聚類和DBSCAN聚類等方法。其作為數據挖掘中數據篩選的重要方法,在電力行業中也開始廣泛的應用。周暉、王毅等人利用灰色聚類方法以及K-Means聚類算法等,不僅對各行業用電量[3],也對客戶欠費特征數據等進行分類[4],為電網公司提供負荷管理和電價制定的依據。
為了更高效的提供電力服務,對電力負荷的預測則需要更加精準。傳統BI已不能滿足現今的需求,而大數據分析能更好進行預測分析,這也是電力大數據應用與傳統數據倉庫和BI技術的關鍵區別之一[5]。隨著電力系統信息化程度不斷提高,如何合理地利用這些數據并從中提取有價值的信息,是目前電力系統面臨的一個重要問題。電力大數據是能源變革中電力工業技術革新的必然途徑,而不是簡單的技術范疇;其不僅僅是技術進步,更是涉及整個電力系統在大數據時代下發展理念、管理體制和技術路線等方面的重大變革,是下一代智能化電力系統在大數據時代下價值形態的躍升。
“配用電側”是電力系統數據源的主要指標,特別是隨著智能電網技術的快速發展,各種先進的檢測裝置和計量設備在配電網中得到了廣泛應用[6]。電網公司的多種不同業務系統集成,對數據集成系統的多源海量數據進行有效的數據挖掘是智能電網發展的必然趨勢。
目前,在新的智能化技術形勢下,負荷數據量急劇加大,數據缺失也更加頻繁,本次研究將針對這些問題,采用數據準備、數據預處理與數據挖掘技術解決相應問題,為電網企業不斷發展提供支持。
本研究的技術路線如圖1所示,首先研究電力負荷預測在當下的現狀,主要分析電力負荷(主要為負荷曲線)的相關特性,并對不同用電特性的用戶加以區分;然后研究數據處理平臺的搭建結構以及設計新的網絡層次結構,并對所需要分析處理的數據做相應計算;最后運用k-means聚類算法,確定“最佳聚類數”搭建模型,并將其應用于某重點行業(如采油、冶煉加工等)負荷特性預測分析。

圖1 技術路線圖Fig.1 Technology roadmap
該硬件架構如圖2所示,共計使用3臺服務器,每臺服務器為8*8G內存,2*4T硬盤,2*E5處理器,并通過8口300M TP-link進行網路連接,以保證數據傳輸過程的效率與穩定性。軟件環境主要采用的Hadoop為基于CentOs 6.7的2.6版,通過Yarn[7]分布式計算。

圖2 硬件架構圖Fig.2 Hardware architecture diagram
數據主要來源于采集系統和調度系統。主要表關系如圖3所示。其中對內部數據的采集主要包括:
(1)客戶基礎信息數據(C_CONS)。用戶數據來源此表,其中包含用戶編號、用戶標識、用戶中文名稱、地區信息、合同容量信息、行業分類等。此表主鍵為用戶標識,并通過用戶編號與外表進行關聯。
(2)日負荷基礎數據(E_MP_POWER_CURVE)。本文所使用的日96點負荷數據來源于此表。表中包含計量點編號、采集數據類型、96點實際負荷、電壓電流比率等信息。此表主鍵為計量點編號,并通過主鍵與外表關聯。
(3)日電量數據(E_MP_DAY_READ)。日電量表底示數來源此表。表中包含計量點編號、采集數據類型、日電量表底示數、電壓電流比率等信息。此表主鍵為計量點編號,并通過主鍵與外表關聯。
(4)計量點基礎信息(E_DATA_MP,C_MP,C_METER_MP_RELA)。計量點信息表包含計量點的ID、倍率、表屬性等信息。
各表間關系如圖3所示。

圖3 表關系圖Fig.3 Table diagram
本數據取自采集系統,采用以Oracle 10g作為數據庫主要版本,導出的數據泵文件,通過數據泵進行導入導出,其數據格式為Dump。鑒于Hadoop作為數據處理主平臺,為了便于HDFS[8]文件系統進行分布式處理,需要進行相應數據中轉,將數據導入Oracle后生成Oracle數據,通過Sqoop將數據導入Hadoop,最終將其導入Hive[9],具體實現過程如下:
(1)將Oracle數據由exp/imp導出至外部存儲(存儲格式為Dump)。基礎數據以月做數據基礎表進行導出;檔案數據以整體導出,五地市數據存儲于一張表內。
(2)根據數據字典創建數據表,并在服務器內分配表空間與物理存儲空間。由于單個表文件無法存儲超規模數據量,且固定表的處理效率遠高于自增表,因此共創建100個數據文件。為避免由于表空間不足導致存儲失敗,每個數據文件均分配30G的固定存儲空間。建表后創建索引和分區,以便加快后續查詢速度。
(3)通過數據泵將數據文件導入Oracle,并通過Sqoop將數據導入HDFS。由于數據量大,在數據導入Hive前先將Oracle中的表增加時間字段以便于分區,利用Linux的Shell命令將時間字段加入表中后,將表導入Hive中,進而在Hive中對表進行分區操作,便于數據查詢及分析。
3.5.1 數據選取
根據日測量點功率曲線表給出的字段來選取數據,篩選得到正向有功的數據;
根據行業代碼,選取(如采油、冶煉加工等)行業數據進行重點分析,經篩選得到完整記錄數據。
3.5.2 數據填補和清洗
“大數據”的數據量在累積中,面臨數據類型繁雜且量級參差不齊,模型無法將其直接使用等問題。因此,需要對數據異構海量信息進行歸一化處理、存儲與相應轉換。此外,還需對負荷數據值中缺損部分給予及時填充和清洗修正。針對不同數據綜合采用以下幾種處理方式:
(1)首末端缺失數據處理。若用戶當日的末端數據(如某點數據)缺失,則以該用戶次日首端數據進行填補;反之,當用戶首端數據缺失,則以該用戶前日末端數據進行填補。
(2)單個數據空缺處理。在已知當日單個缺失數據前后負荷點數據時,可借助列插值法,即該點數據前后均值來填補數據。
(3)連續多個數據缺失處理。利用行插值法,需要考慮到缺失數據個數的奇偶性。若尋找的數據在中間有連續多個數據缺失時,需尋找缺失數據1/2中心點數據。再由此方法,依次找尋1/4和3/4點處的數據。重復該操作,即可補全所缺失數據。
(4)刪除空缺值多的記錄。經由數據填補之后,仍有記錄存在大量空缺,則進行刪除處理。表中有用字段對應數據缺失值過多時,填補等方法將不能起到相應作用,且無法保證填補數據的有效性,將其刪除以減小計算誤差。
(5)刪除表中的無效記錄。首先刪除表中含有負值記錄,其次刪除表中數據全為0的記錄,最后刪除表中出現極大值的記錄。
3.5.3 數據歸一化
根據聚類方法的要求,采用數據歸一化方法對日負荷數據進行處理,將數據限制在0~1范圍內。數據歸一處理主要解決數據的可比性,常用的有“最大最小值化”、“0均值標準化”和“極大值標準化”等。經過歸一化處理,方便進行研究分析。本研究采用數據歸一化方式的極大值標準化。極大值標準化可由式(1)表示:

采用年最大負荷作為極大值,會導致對異常數據的極度敏感,可以通過前期對數據異常值的清洗消除影響。因此,采用其作為歸一化極大值指標。
4.1.1 k-means聚類算法
采用k-means方法對用戶的日負荷曲線進行聚類,能獲取反映行業特性典型的日負荷曲線。kmeans可以處理數據量較大的情況,是基于劃分的計算方法,時間復雜度較低,在給定k值后,可以較快的完成收斂;其次,該算法較為簡單,不需要復雜的邏輯和方法;此外,對足夠大的數據量進行聚類,可以保持結果準確一致,與初始隨機選擇的聚類中心無關。
4.1.2 基于評價指標的最佳聚類數確定
聚類有效性研究是通過建立有效性指標,評價聚類質量并確定最佳聚類數的過程。本文選擇運算復雜度較低的SSE和CC這二類完全相反的指標,作為選取最佳聚類數的考核指標。
(1)數據計算和抽取生成周負荷曲線。計算每日最大負荷,選取連續7天日最大負荷生成周負荷曲線。
(2)取不同聚類數k(初始值取2,逐次增加1),采用k-means聚類方法對周負荷曲線進行聚類。
(3)聚類結果采用R語言計算SSE和CC指標,根據指標趨勢圖獲取最佳聚類數k。
本研究利用k-means聚類方法,對特殊行業負荷特性進行分析,及對行業用戶某點日負荷數據進行預處理。綜合處理步驟如下:
(1)篩選某點日負荷數據,并進行數據填補與清洗。
(2)按日期對該行業或其子行業的所有用戶日負荷加和,計算該行業或其子行業每日綜合日負荷曲線,進行初步挖掘分析。
(3)關聯每個用戶檔案,以便于獲取其年最大負荷,并采用極大值標準化方法,對數據作歸一化處理。
(4)通過SSE和CC指標,計算該行業最佳聚類k,隨機選取初始聚類中心,對預處理后數據進行kmeans聚類。
(5)隨機更換初始聚類中心,進行k-means聚類。
(6)對不同初始聚類中心的聚類結果進行評價,選取最優聚類結果。
(7)根據最優聚類結果,對該行業用戶日負荷特性進行分類,分析其生產特性并給出典型用戶。
將負荷特性分析結果用于標簽體系庫建設的應用;將聚類結果進行整理并以標簽庫形式展現。如,冶煉加工行業標簽庫界面如圖4所示。

圖4 標簽庫界面Fig.4 Tag library interface
本文提出的基于大數據的用戶負荷特性分析系統的總體架構,以相對較為穩定的日96點電力負荷數據建立分類模型,獲得針對某個重點行業,如采油、冶煉加工等典型場景用電負荷特性。通過實驗仿真SSE和CC等指標變化圖,實現對該行業用電特征分析;再抽取該行業用戶用電特征,建立用戶用電行為標簽庫,有利于網絡收斂與穩定,提高負荷數據聚類化。