鐘華明,梁玉楠,曾少軍
(中海石油(中國)有限公司湛江分公司,廣東 湛江 524057)
數值預測是對以往數據進行學習建立模型,并對輸入的數據集進行數值預測。目前對數值預測的機器學習算法有很多,其中模型樹、回歸方程、神經網絡、支持向量機都是常用的數值預測方法,每一種算法都有各自的特點及適用范圍。數值預測的運用領域很廣,有森林火災的預測,地區(qū)房價的預測,臺風的預測,電子產品的性能預測以及航天可靠性的預測等。其中,ONYARI E K和ILUNGA F M運用M5P模型樹和神經網絡對南非魯武伏特河流域的河水流量進行預測[1];RAZA K和JOTHIPRAKASH V利用人工神經網絡在氣象站對氣象參數進行預測[2];SATHYADEVAN S和CHAITRA M A利用線性回歸對機翼的噪音進行預測[3];王定成等利用支持向量機回歸對溫室溫度變化進行預測[4]。但是在何種數據類型的數據集上使用何種算法,目前還沒有定論。
在研究數值預測算法的應用情況時,選取了四個常用的數值預測算法,應用在不同類型的數據集上進行比較研究,試圖找出一些規(guī)律,供實踐使用。
M5P是對模型樹改進的一種算法,它是基于樹結構用來處理連續(xù)值的機器學習技術。模型樹[1,5-7]是在葉節(jié)點儲存了能夠預測到達葉節(jié)點的實例類值的一個線性回歸模型的樹,其表現形式類似于決策樹根據屬性值判斷由該節(jié)點引出的分支,在決策樹的葉節(jié)點得到結論。葉節(jié)點包含有一個基于部分屬性值的線性模型,使測試實例得到一個測試值。M5P模型樹具有以下的優(yōu)點:(1)模型樹簡單易用,受殘缺值影響小;(2)隱式進行變量篩選或者特征值選擇;(3)不需要對訓練集進行處理;(4)非線性關系的變量不影響樹的性能;(5)樹的結構更容易分析和解釋。其模型如圖1所示。
圖1 模型樹模型
Multilayer Perceptron(多層感知器)[1,2,5,8],是一個使用反向傳播進行訓練的神經網絡,是屬于人工智能范疇的一種計算技術,它根據人們對生物神經網絡的研究成果設計出來,具有良好的數學描述能力,可以方便地用計算機程序加以模擬。作為一種具有高度非線性映射能力的計算模型,它已被廣泛應用于模式識別、自動控制等諸多領域。在數值預測方面,它不需要預先確定樣本數據的數學模型,僅通過學習樣本數據即可以進行相當精確的預測。其模型如圖2所示。
圖2 多層感知器模型
Linear Regression(線性回歸)[3,5]是統(tǒng)計學的一種常用的方法,它的主導思想是利用預定的權值將屬性進行線性組合來表示類別:
hw(xi)=w0+w1x1+w2x2+…+wkxk
(1)
式中:hw為回歸模型,wi為系數,xi為回歸量。
線性回歸不僅可以提供變量間相關關系的數學表達式,而且可以利用概率統(tǒng)計知識對此關系進行分析,以判別其有效性。還可以利用關系式,由一個或多個變量值,預測和控制另一個因變量的取值,進一步可以知道預測和控制達到了何種程度,并進行因素分析。
線性回歸是一個出色的、簡單的適合用于數值預測的方法,即使數據呈現非線性關系,線性回歸將會找到一條最適合的曲線。
支持向量機回歸理論與神經網絡等非線性回歸理論相比具有許多獨特的優(yōu)點,SMOReg[4,5,9]有線性回歸和非線性回歸,其模型的選擇包括核的選擇、容量控制以及損失函數的選擇。在控制方面的研究包括非線性時間序列的預測及應用、系統(tǒng)辨識以及優(yōu)化控制和學習控制等方面的研究。
支持向量機回歸的基本思想是通過一個非線性映射Φ,將數據x映射到高維特征空間F,并在這個空間進行線性回歸[11]。即:
f(x)=(ω·Φ(x))+b
Φ.Rn→F,ω∈F
(2)
式中:b為閾值,f(x)為特征空間,Φ為非線性映射,ω為高維空間。
這樣,在高維特征空間的線性回歸便對應于低維輸入空間的非線性回歸,免去了在高維空間ω和Φ(x)點積的計算。
在該實驗中所有的數據集均來自UCI,這些數據集都是用于回歸且具有不同的數據屬性類型,這樣就可以用來比較不同的算法在不同屬性的數據集上的表現。當然,在該實驗中,為了更好地對同種屬性進行實驗結果比較,選擇兩組相同屬性類型的數據進行實驗。表1列出了這些數據集名稱、默認任務、屬性類型、實例數、屬性數、數據集的用途。
表1 實驗使用的數據集
在weka 3.6調用相應的函數和模型,采用十折交叉驗證法進行實驗,測出各個算法在不同數據集上的均方誤差,記錄在表2中。
表2 不同算法應用于不同數據集的均方誤差
注:NA-表示沒結果
從表2中的數據發(fā)現除了在森林火災和KDD Cup 1998數據集兩個數據集中各個算法的均方誤差存在較大的差異,在其他各個數據集上這四種算法的均方誤差相差不大,在數值預測方面都能夠到達較好的預測性能,但是希望能夠找到應用在各種不同的數據集上的最優(yōu)的算法,因此,對這四種算法的均方誤差在不同的數據集上均方差的平均值進行一一比較。
從圖3可以知道對于數據類型為Real的數據集,SMOReg表現最好,其次是Linear Regression,Multilayer Perceptron表現最差。從圖4中可知對于數據類型為Integer的數據集Linear Regression表現最好,其次是SMOReg。從圖5中可知對于數據類型為Categorical的數據集,四種算法表現相差不大,其中SMOReg表現最好,M5P表現次之。從圖6中可知對于數據類型為Categorical、Integer、Real三種混合數據集,M5P表現最好,其次是SMOReg。從圖7中可知對于數據類型為Categorical、Integer兩種混合數據集,M5P表現最佳,其次是Multilayer Perceptron,Linear Regression表現最差。從圖8中可知對于數據類型為Categorical、Real兩種混合數據集,可以知道M5P表現最好,其次是SMOReg。從圖9中可知對于數據類型為Real、Integer兩種混合數據集,M5P表現最好,其次是SMOReg。
圖3 四種算法在Real數據類型的應用結果分析
圖4 四種算法在Integer數據類型的應用結果分析
圖5 四種算法在Categorical數據類型的應用結果分析
圖6 四種算法在三種混合數據類型的應用結果分析
圖7 四種算法在Categorical,Integer數據類型的應用結果分析
圖8 四種算法在Categorical,Real數據類型的應用結果分析
圖9 四種算法在Integer、Real數據類型的應用結果分析
圖10 同種算法應用于不同數據集的平均均方誤差值對比
為了進一度分析每種算法的總體性能,將各種數據類型計算的均方誤差進行算術平均,如圖10所示。從圖10可知四種算法在不同的數據集中,除了Real型數據集與Integer型數據集存在較大的差異,其他表現均相差不大。
M5P與Multilayer Perceptron比較,在Integer屬性的數據集中當Integer數據量較多時,Multilayer Perceptron有較好的表現,其他情況M5P占優(yōu)勢。M5P與Linear Regression的比較,在數據屬性為Real以及數據因果關系有較強的函數關系時,Linear Regression比M5P有優(yōu)勢。M5P與SMOReg比較,SMOReg在Integer數據屬性和Categorical數據屬性的數據集中有較好的表現,其他情況M5P占優(yōu)勢;Multilayer Perceptron與Linear Regression的比較,在含有Real的數據集且數據集較小的Integer數據集中,Multilayer Perceptron比Linear Regression表現稍差,但Multilayer Perceptron在Categorical及混合數據集中表現比Linear Regression要好。Multilayer Perceptron與SMOReg的比較,在Categorical、Integer兩種混合數據集中,Multilayer Perceptron表現比SMOReg好。Linear Regression與SMOReg比較,Linear Regression在數據量較少且數據之間能行成函數關系的Integer數據集比SMOReg有優(yōu)勢。
綜合上面所述,SMOReg與M5P在所有的數據集上表現最好,其中M5P在混合數據處理方面表現很出色,這是因為模型樹能夠通過節(jié)點間的平滑處理、不同屬性間的處理、殘缺值的有效處理降低了誤差,能夠形成較好的預測模型;Multilayer Perceptron對數據量較大且數據屬性為Integer的數據集表現出色,這是因為在非線性數據量較大的Integer數據集,Multilayer Perceptron能夠訓練出好的預測模型;Linear Regression對數據因果關系能夠形成函數關系的數據集比較有效,這是因為簡單的線性回歸在數據量較小的時候,能夠實現函數擬合,形成較好的預測模型;SMOreg在數據屬性類型為Real的數據集和數據屬性類型確定范圍的數據集有很大的優(yōu)勢,這是該算法的模型控制在一定寬度的管道上,算法預測的結果總是類的平均值,這樣該模型比較適合Real數據屬性的數據集,能夠有效地降低預測誤差。
通過對數值預測的幾種方法進行比較分析后得到以下幾點結論:(1)當對Real和確定范圍的數據屬性類型處理時,首先考慮SMOReg算法;(2)處理數據量較大且數據屬性為Integer的數據集時,首先考慮的算法為Multilayer Perceptron,否則考慮使用Linear Regression;(3)當處理混合屬性類型的數據集時,首先應該考慮模型樹M5P;(4)SMOReg與M5P表現比其他的算法都出色,當不能確定數據集類型時,選用這兩種算法,均得到很好結果。