本發(fā)明涉及電力數(shù)據(jù)技術(shù)領(lǐng)域,更具體地說,涉及一種用電量預(yù)測方法,還涉及一種用電量預(yù)測系統(tǒng)。
背景技術(shù):
電力是我國國民經(jīng)濟(jì)的基礎(chǔ)能源,用電量的預(yù)測是電力系統(tǒng)規(guī)劃、經(jīng)濟(jì)運(yùn)行的前提和基礎(chǔ),對于保證電力系統(tǒng)規(guī)劃與可靠、經(jīng)濟(jì)運(yùn)行方面具有十分重要的意義。電力系統(tǒng)的用電量預(yù)測是指通過對歷史數(shù)據(jù)的分析和研究,找出電力數(shù)據(jù)內(nèi)部變化規(guī)律以及電力數(shù)據(jù)和其影響因素之間的關(guān)聯(lián),然后對電力需求做出預(yù)先的估算。用電量預(yù)測結(jié)果的準(zhǔn)確性,直接關(guān)系到電網(wǎng)安全以及可靠供電,并且能夠影響電網(wǎng)經(jīng)營企業(yè)的經(jīng)營決策與經(jīng)濟(jì)效益。
隨著智能電網(wǎng)的不斷發(fā)展,目前已有的預(yù)測算法對大規(guī)模電力數(shù)據(jù)進(jìn)行分析挖掘過程效率低下,無法快速深入挖掘電力數(shù)據(jù)的潛在信息,也無法滿足大規(guī)模電力數(shù)據(jù)的計算和預(yù)測分析。具體的,現(xiàn)有用電量預(yù)測方法主要分為經(jīng)典預(yù)測方法和現(xiàn)代預(yù)測方法。其中經(jīng)典預(yù)測方法包括:時間序列法,回歸分析法,趨勢外推法等方法;現(xiàn)代預(yù)測方法包括:灰色理論,專家系統(tǒng)方法,神經(jīng)網(wǎng)絡(luò)方法,模糊預(yù)測方法。在預(yù)測分析方法上,傳統(tǒng)時間序列、灰度模型等方法無法充分考慮天氣、季節(jié)等因素,導(dǎo)致預(yù)測精度受限。神經(jīng)網(wǎng)絡(luò)、線性回歸等模型在大規(guī)模數(shù)據(jù)的預(yù)測上會存在過擬合的現(xiàn)象,而過擬合現(xiàn)象導(dǎo)致模型泛化能力降低,從而影響預(yù)測精度。
在對大規(guī)模電力數(shù)據(jù)進(jìn)行分析中,現(xiàn)有方法有基于MapReduce的線性回歸,其主要思想如下:使用Map進(jìn)行讀取所有訓(xùn)練數(shù)據(jù),然后計算該訓(xùn)練數(shù)據(jù)與樣本點(diǎn)的余弦距離,同時過濾掉不符合要求的值,然后輸出相應(yīng)的鍵值;在Combine階段讀取reduce函數(shù)的鍵值,并解析Map階段計算好的距離,然后查找距離最近的K個數(shù)據(jù)點(diǎn),并輸出這K個數(shù)據(jù)點(diǎn)的鍵值;在Reduce階段的工作與Combine階段類似,同時需要選出K個數(shù)據(jù)點(diǎn)采用線性回歸模型進(jìn)行訓(xùn)練,并對測試數(shù)據(jù)進(jìn)行預(yù)測,然后得到預(yù)測值并進(jìn)行存儲。
傳統(tǒng)數(shù)據(jù)庫和單節(jié)點(diǎn)預(yù)測分析技術(shù)主要缺點(diǎn)在于:傳統(tǒng)數(shù)據(jù)庫在進(jìn)行海量數(shù)據(jù)匯總、排序時需要花費(fèi)大量時間,且無法與數(shù)據(jù)進(jìn)行實(shí)時交互。在單節(jié)點(diǎn)進(jìn)行海量數(shù)據(jù)挖掘時耗費(fèi)大量時間在數(shù)據(jù)讀入內(nèi)存過程中,并且迭代中產(chǎn)生的大量中間數(shù)據(jù)無法在內(nèi)存中駐留,計算過程中需要反復(fù)讀取中間數(shù)據(jù),耗費(fèi)系統(tǒng)資源和計算時間。在進(jìn)行分袋、關(guān)聯(lián)規(guī)則挖掘等需要一次性讀入大規(guī)模數(shù)據(jù)運(yùn)算時,單節(jié)點(diǎn)有限的內(nèi)存空間無法進(jìn)行數(shù)據(jù)讀取,從而導(dǎo)致無法進(jìn)行大規(guī)模數(shù)據(jù)的分析。
因此,在海量數(shù)據(jù)背景下,如何快速對電力數(shù)據(jù)進(jìn)行處理,同時保證預(yù)測精度是本領(lǐng)域技術(shù)人員急需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供一種用電量預(yù)測方法,在海量數(shù)據(jù)背景下,快速對電力數(shù)據(jù)進(jìn)行處理,同時保證預(yù)測精度。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種用電量預(yù)測方法,包括:
步驟S1:利用Spark平臺讀取原始用電量數(shù)據(jù),并將所述原始用電量數(shù)據(jù)轉(zhuǎn)換為彈性分布數(shù)據(jù)集;
步驟S2:提取所述彈性分布數(shù)據(jù)集的特征值,將所述彈性分布數(shù)據(jù)集按照預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;
步驟S3:建立預(yù)測模型,將所述訓(xùn)練數(shù)據(jù)集代入所述預(yù)測模型,計算所述預(yù)測模型的模型參數(shù);
步驟S4:將待預(yù)測數(shù)據(jù)作為變量輸入至已代入所述模型參數(shù)的預(yù)測模型中,輸出用電量預(yù)測值。
優(yōu)選的,在上述用電量預(yù)測方法中,所述步驟S1中,所述用Spark平臺讀取原始用電量數(shù)據(jù)之后,還包括:
對所述原始用電量數(shù)據(jù)進(jìn)行清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約處理。
優(yōu)選的,在上述用電量預(yù)測方法中,所述步驟S4之前,還包括:
重新將所述彈性分布數(shù)據(jù)集按照另一預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;
將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,優(yōu)化所述模型參數(shù),得到優(yōu)化后的預(yù)測模型。
優(yōu)選的,在上述用電量預(yù)測方法中,還包括:
將所述預(yù)測模型以及所述用電量預(yù)測值保存至分布式文件系統(tǒng)中。
優(yōu)選的,在上述用電量預(yù)測方法中,所述步驟S3中,利用AdaBoost回歸算法建立預(yù)測模型,生成AdaBoost回歸預(yù)測模型。
本發(fā)明提供了一種用電量預(yù)測系統(tǒng),包括:
讀取模塊,用于利用Spark平臺讀取原始用電量數(shù)據(jù);
轉(zhuǎn)換模塊,用于將所述原始用電量數(shù)據(jù)轉(zhuǎn)換為多個彈性分布數(shù)據(jù)集;
數(shù)據(jù)集劃分模塊,用于提取所述彈性分布數(shù)據(jù)集的特征值,將所述彈性分布數(shù)據(jù)集按照預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;
模型建立模塊,用于建立預(yù)測模型,將所述訓(xùn)練數(shù)據(jù)集代入所述預(yù)測模型,計算所述預(yù)測模型的模型參數(shù);
預(yù)測模塊,用于將待預(yù)測數(shù)據(jù)作為變量輸入至已代入所述模型參數(shù)的預(yù)測模型中,輸出用電量預(yù)測值。
優(yōu)選的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
數(shù)據(jù)處理模塊,用于對所述原始用電量數(shù)據(jù)進(jìn)行清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約處理。
優(yōu)選的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
模型優(yōu)化模塊,用于將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,優(yōu)化所述模型參數(shù),得到優(yōu)化后的預(yù)測模型。
優(yōu)選的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
存儲模塊,用于將所述預(yù)測模型以及所述用電量預(yù)測值保存至分布式文件系統(tǒng)中。
從上述技術(shù)方案可以看出,本發(fā)明所提供的一種用電量預(yù)測方法,其特征在于,包括:步驟S1:利用Spark平臺讀取原始用電量數(shù)據(jù),并將所述原始用電量數(shù)據(jù)轉(zhuǎn)換為彈性分布數(shù)據(jù)集;步驟S2:提取所述彈性分布數(shù)據(jù)集的特征值,將所述彈性分布數(shù)據(jù)集按照預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;步驟S3:建立預(yù)測模型,并將所述訓(xùn)練數(shù)據(jù)集代入所述預(yù)測模型,計算所述預(yù)測模型的模型參數(shù);步驟S4:將待預(yù)測數(shù)據(jù)作為變量輸入至已代入所述模型參數(shù)的預(yù)測模型中,輸出用電量預(yù)測值。本發(fā)明使用Apache Spark分布式框架,基于Spark平臺讀取原始用電量數(shù)據(jù),可以從本地或HDFS上讀取大規(guī)模電力數(shù)據(jù),提高了海量數(shù)據(jù)的讀寫及存儲能力,利用其內(nèi)存計算的優(yōu)勢可以實(shí)現(xiàn)更加高效、快速的用電量預(yù)測,同時,由于待預(yù)測數(shù)據(jù)包括了包括待預(yù)測日期、待預(yù)測當(dāng)天溫度、待預(yù)測用戶用電類型等數(shù)據(jù),充分考慮天氣、季節(jié)等因素,實(shí)現(xiàn)高精度用電量預(yù)測。
本發(fā)明還提供了一種用電量預(yù)測系統(tǒng),具有上述效果。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種用電量預(yù)測方法示意圖;
圖2為本發(fā)明實(shí)施例提供的一種Spark計算流程圖;
圖3為本發(fā)明實(shí)施例提供的一種用電量預(yù)測系統(tǒng)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請參閱圖1,圖1為本發(fā)明實(shí)施例提供的一種用電量預(yù)測方法示意圖。
在一種具體實(shí)施例中提供了一種用電量預(yù)測方法,用電量預(yù)測是根據(jù)系統(tǒng)的運(yùn)行特性、增容決策、自然條件與社會影響等諸多因數(shù),在滿足一定精度要求的條件下,確定未來某特定時刻的電力需求量,用電量預(yù)測是電力系統(tǒng)經(jīng)濟(jì)調(diào)度中的一項(xiàng)重要內(nèi)容,主要包括如下步驟:
步驟S1:利用Spark平臺讀取原始用電量數(shù)據(jù),并將所述原始用電量數(shù)據(jù)轉(zhuǎn)換為彈性分布數(shù)據(jù)集。
其中,Spark平臺具體指Apache Spark,是新興的開源通用并行計算框架。該框架提出了內(nèi)存集群計算,通過將數(shù)據(jù)集緩存到內(nèi)存中,減少數(shù)據(jù)的I/O操作,從而提高數(shù)據(jù)讀寫速率。Spark利用Hadoop數(shù)據(jù)層,包括HDFS(Hadoop Distributed File System)和HBase等組件作為數(shù)據(jù)管道終端,從而實(shí)現(xiàn)原始數(shù)據(jù)讀取以及最終結(jié)果的存儲。Spark中非常重要的抽象是RDD(Resilient Distributed Data彈性分布數(shù)據(jù)集),一個有容錯機(jī)制,可以被并行操作的集合。目前有兩種類型的RDD:并行集合(Parrallelized Collections),接收一個已經(jīng)存在的Scala集合,在它上面運(yùn)行各種并發(fā)計算;Hadoop數(shù)據(jù)集(Hadoop DataSets),在一個文件的每條記錄上,運(yùn)行各種函數(shù)。只要文件系統(tǒng)是Hdfs,或者h(yuǎn)adoop支持的任意存儲系統(tǒng),這兩種RDD都可以通過相同的方式進(jìn)行操作。其中,在并行計算的各個階段進(jìn)行有效的數(shù)據(jù)共享,擅長迭代和流式處理,在spark中幾乎所有的操作都是基于RDD的轉(zhuǎn)化,RDD負(fù)責(zé)鏈接Spark集群,可以在集群上創(chuàng)建RDD,累加器和廣播變量。
在用電量預(yù)測場景中,Spark將原始用電量數(shù)據(jù)集生成RDD,緩存到內(nèi)存,進(jìn)而被多個并行執(zhí)行的任務(wù)重用。關(guān)鍵操作具體描述如下:
步驟S11:Input,首先從HDFS或其他文件系統(tǒng)讀取原始數(shù)據(jù)集,并轉(zhuǎn)換為RDD數(shù)據(jù)集;
步驟S12:FlatMap,將輸入原始RDD數(shù)據(jù)集映射成0到多個輸出RDD數(shù)據(jù)集。按照用戶編寫映射程序邏輯,映射成(key,value)鍵值對。
步驟S13:Map,按照用戶編寫Map映射函數(shù)程序邏輯,對步驟b形成的(key,value)鍵值對重新進(jìn)行映射,形成新的(key,value)鍵值對,步驟主要為步驟S14的Reduce階段確定合適的key字段。
步驟S14:Reduce,類似于MapReduce的Reduce階段,將數(shù)據(jù)按照key分組后,調(diào)用用戶編寫函數(shù)進(jìn)行處理,每組返回一個鍵值對。
步驟S15:Join,根據(jù)key連接步驟S13中RDD數(shù)據(jù)集和步驟S14中的結(jié)果鍵值對,產(chǎn)生新的RDD數(shù)據(jù)集。
步驟S16:Cache,將RDD數(shù)據(jù)集緩存到內(nèi)存中。
步驟S17:判斷迭代是否結(jié)束。結(jié)束則通過SaveAsTextFile方法將結(jié)果保存到HDFS或其他文件系統(tǒng);否則返回步驟S13,進(jìn)行下一輪操作,運(yùn)行機(jī)制圖解見圖2。
步驟S2:提取所述彈性分布數(shù)據(jù)集的特征值,將所述彈性分布數(shù)據(jù)集按照預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集。
例如,在對包含日期,用電量,用戶類別,當(dāng)日平均溫度的歷史用電量數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗和缺失值處理等預(yù)處理步驟之后,將當(dāng)日用電量,用戶類別,當(dāng)日平均溫度三個字段作為特征值,所構(gòu)造出的矩陣每項(xiàng)數(shù)據(jù)對應(yīng)的行列分別為每條數(shù)據(jù)的記錄ID,當(dāng)日用電量、用戶類別和當(dāng)日平均溫度。在此數(shù)據(jù)集基礎(chǔ)上,按比例進(jìn)行訓(xùn)練集和測試集的劃分,即取前70%作為訓(xùn)練數(shù)據(jù)集,后30%作為測試數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集用來對建立預(yù)測模型,測試數(shù)據(jù)集用于對所建立模型進(jìn)行計算輸出預(yù)測值,并與測試集中的真實(shí)值進(jìn)行比對,從而優(yōu)化模型中的參數(shù)。
步驟S3:建立預(yù)測模型,并將所述訓(xùn)練數(shù)據(jù)集代入所述預(yù)測模型,計算所述預(yù)測模型的模型參數(shù)。
其中,預(yù)測模型的建立,提供了選擇分類預(yù)測模型、設(shè)定模型參數(shù)、數(shù)據(jù)接入、模型訓(xùn)練等功能,通過訓(xùn)練數(shù)據(jù)集計算模型參數(shù),將模型參數(shù)代入預(yù)測模型中得到只有應(yīng)變量和自變量的預(yù)測模型。
步驟S4:用于將待預(yù)測數(shù)據(jù)輸入至已代入所述模型參數(shù)的預(yù)測模型中,輸出用電量預(yù)測值。例如,待預(yù)測數(shù)據(jù)包括待預(yù)測日期、待預(yù)測當(dāng)天溫度、待預(yù)測用戶用電類型等數(shù)據(jù),作為變量輸入到已優(yōu)化的模型中,計算出在不同環(huán)境條件下的預(yù)測用電量。
本發(fā)明使用Apache Spark分布式框架,基于Spark平臺讀取原始用電量數(shù)據(jù),可以從本地或HDFS上讀取大規(guī)模電力數(shù)據(jù),提高了海量數(shù)據(jù)的讀寫及存儲能力,利用其內(nèi)存計算的優(yōu)勢可以實(shí)現(xiàn)更加高效、快速的用電量預(yù)測,同時,由于待預(yù)測數(shù)據(jù)包括了包括待預(yù)測日期、待預(yù)測當(dāng)天溫度、待預(yù)測用戶用電類型等數(shù)據(jù),充分考慮天氣、季節(jié)等因素,實(shí)現(xiàn)高精度用電量預(yù)測。
在上述用電量預(yù)測方法的基礎(chǔ)上,所述步驟S1中,所述用Spark平臺讀取原始用電量數(shù)據(jù)之后,還包括:
對所述原始用電量數(shù)據(jù)進(jìn)行清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約處理。
其中,對原始用電量數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約等操作,可以實(shí)現(xiàn)對大規(guī)模數(shù)據(jù)的去噪、缺失值處理、降維、樣本分割等功能,為模型訓(xùn)練模塊提供訓(xùn)練數(shù)據(jù)集。
在上述用電量預(yù)測方法的基礎(chǔ)上,所述步驟S4之前,還包括:
重新將所述彈性分布數(shù)據(jù)集按照另一預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;
將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,優(yōu)化所述模型參數(shù),得到優(yōu)化后的預(yù)測模型。
其中,本步驟的目的是對預(yù)測模型的優(yōu)化,在彈性分布數(shù)據(jù)集反復(fù)進(jìn)行訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集劃分,預(yù)設(shè)比例每次不同,即每次劃分的訓(xùn)練數(shù)據(jù)集的內(nèi)容和上一次不同,例如,第一次使用第1、2、3條的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,第4、5條數(shù)據(jù)作為測試數(shù)據(jù)集,而下一次劃分時,第1、4、5條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,第2、3條作為測試數(shù)據(jù)集,將再次劃分后的訓(xùn)練數(shù)據(jù)集重新代入預(yù)測模型,重新計算模型參數(shù),將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,優(yōu)化所述模型參數(shù),得到優(yōu)化后的預(yù)測模型。本步驟進(jìn)行多次,從而完成對模型參數(shù)的最優(yōu)求解不斷優(yōu)化預(yù)測模型,得到最優(yōu)預(yù)測模型。
具體的,將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,得到對訓(xùn)練結(jié)果的評估指標(biāo),如計算均方根誤差、平均誤差等并反饋給模型進(jìn)行參數(shù)優(yōu)化,本步驟為迭代過程,直到模型輸出結(jié)果達(dá)到所設(shè)定的閾值停止,此時保存所計算出的模型參數(shù),在對同一數(shù)據(jù)集進(jìn)行預(yù)測時只需導(dǎo)入保存的模型參數(shù),不需要重新優(yōu)化模型。
進(jìn)一步的,為了便于提取使用,在上述用電量預(yù)測方法中,還包括:
將所述預(yù)測模型以及所述用電量預(yù)測值保存至分布式文件系統(tǒng)中。
在上述用電量預(yù)測方法的基礎(chǔ)上,所述步驟S3中,利用AdaBoost回歸算法建立預(yù)測模型,生成AdaBoost回歸預(yù)測模型。
其中,AdaBoost回歸算法是一種迭代算法,在用電量預(yù)測場景中,將AdaBoost回歸算法應(yīng)用于提升單一“弱回歸”方法,具體做法是把經(jīng)過加權(quán)的數(shù)據(jù)樣本應(yīng)用于回歸模型算法中,進(jìn)行迭代后產(chǎn)生回歸序Dt(i),t=1,2,...,T,然后經(jīng)過加權(quán)多數(shù)投票算法來合并已得到的回歸模型,AdaBoost模型建立詳細(xì)步驟如下所示:
步驟S31:輸入訓(xùn)練數(shù)據(jù)集(x1,y1),...(xm,ym),其中y∈R,m為樣本個數(shù),選擇弱回歸算法及弱回歸器個數(shù)T,以及用來區(qū)分正確和錯誤預(yù)測的閾值φ。
步驟S32:弱回歸器數(shù)量t=1,對于所有的i有分布Dt(i)=1/m,初始化平均損失函數(shù)
步驟S33:當(dāng)時,將分布Dt作為弱回歸器輸入,建立回歸模型ft(x)→Y,對于每個訓(xùn)練樣本計算其損失量:
lt(i)=|ft(xi-yi)| (1)
對于每個訓(xùn)練樣本使用三種不同方式計算損失函數(shù)Lt(i)如下:
Lt(i)=lt(i)/Dent (2)
Lt(i)=(lt(i)/Dent)2 (3)
Lt(i)=1-exp(-lt(i)/Dent) (4)
其中,
計算平均損失量:
設(shè)更新分布Dt:
其中,Zt是歸一化因子;
輸出最終擬合函數(shù):
在AdaBoost回歸預(yù)測模型中,對上述日期-用電量時間序列部分?jǐn)?shù)據(jù)((x1,y1),(x2,y2),(x3,y3),...,(xm,ym))做如下變換:
(x1,y1)→(y1,y2,y3,...,yk-1,yk)
(x2,y2)→(y2,y3,y4,...,yk,yk+1)
(xi,yi)→(yi,yi+1,yi+2,...,yk+i-1,yk+i);
得到矩陣矩陣前k-1列作為AdaBoost回歸算法訓(xùn)練的輸入,第k列為訓(xùn)練目標(biāo)值。
即用前k-1個月的用電量序列來作為第k個月用電量值的特征,將時間和用電量對應(yīng)的二維數(shù)組映射到高維,其中k+i等于樣本數(shù)m,k的取值與時間序列的樣本周期性有關(guān)。
采用的AdaBoost回歸算法在對城市月用電量數(shù)據(jù)進(jìn)行建模過程中,使用加權(quán)組合預(yù)測結(jié)果的方式防止了過擬合,使預(yù)測結(jié)果更貼近真實(shí)值,通過AdaBoost集成學(xué)習(xí)算法建??梢詫?shí)現(xiàn)高效、快速、高精度的用電量預(yù)測。
下面對本發(fā)明實(shí)施例提供的用電量預(yù)測系統(tǒng)進(jìn)行介紹,下文描述的用電量預(yù)測系統(tǒng)與上文描述的用電量預(yù)測方法可相互對應(yīng)參照。
請參考圖3,圖3為本發(fā)明實(shí)施例所提供的用電量預(yù)測系統(tǒng)結(jié)構(gòu)框圖;該系統(tǒng)可以包括:
讀取模塊100,用于利用Spark平臺讀取原始用電量數(shù)據(jù);
轉(zhuǎn)換模塊200,用于將所述原始用電量數(shù)據(jù)轉(zhuǎn)換為多個彈性分布數(shù)據(jù)集;
數(shù)據(jù)集劃分模塊300,用于提取所述彈性分布數(shù)據(jù)集的特征值,將所述彈性分布數(shù)據(jù)集按照預(yù)設(shè)比例劃分為具有相同所述特征值的訓(xùn)練數(shù)據(jù)集以及測試數(shù)據(jù)集;
模型建立模塊400,用于建立預(yù)測模型,將所述訓(xùn)練數(shù)據(jù)集代入所述預(yù)測模型,計算所述預(yù)測模型的模型參數(shù);
預(yù)測模塊500,用于將待預(yù)測日期輸入至已代入所述模型參數(shù)的預(yù)測模型中,輸出所述待預(yù)測日期內(nèi)的用電量預(yù)測值。
進(jìn)一步的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
數(shù)據(jù)處理模塊,用于對所述原始用電量數(shù)據(jù)進(jìn)行清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約處理。
進(jìn)一步的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
模型優(yōu)化模塊,用于將所述測試數(shù)據(jù)集輸入所述預(yù)測模型中,優(yōu)化所述模型參數(shù),得到優(yōu)化后的預(yù)測模型。
進(jìn)一步的,在上述所述的用電量預(yù)測系統(tǒng)中,還包括:
存儲模塊,用于將所述預(yù)測模型以及所述用電量預(yù)測值保存至分布式文件系統(tǒng)中。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。