M5P算法——本質上就是分段線性回歸的樹類算法


數據挖掘之一——M5P樹狀回歸演算法

如果哪天你看到了這個文章,說明你是xixi,真懷念一起讀博士的日子啊。

M5P樹狀回歸演算法可根據資料的分布建立多種回歸模型,依據輸入資料的不同來決定適用的回歸模型。 比起傳統的線性回歸,M5P能夠准確預測非線性的資料,而且規則與回歸模型容易解讀。 相較於類神經網路和支持向量機等黑箱演算法,白箱演算法的M5P更容易用於研究結果的解釋上。

 

用數值來預測數值的問題叫做「回歸」(regression),而「回歸」的經典演算法是線性回歸(Linear Regression) 。 線性回歸能夠有效處理具有明確線性規律的資料,像是緯度的高低跟氣溫之間的關系 ,這可以讓我們容易用多元回歸來解釋資料的規律 。 但是若資料呈現非線性的分布,那線性回歸的效果就很差。 舉例來說,月份跟氣溫的關系就不是單純的線性關系。 較小跟較大的月份接近冬季,氣溫較低;位於中間的月份接近夏季,氣溫較高,這樣的情況就是非線性資料。

 

處理非線性資料時,常見的做法會采用類神經網路( 多層次感知機或深度學習,也就是現在流行的AI)或是支持向量機的回歸演算法SMOreg 。 但是這些黑箱演算法所建立的預測模型無法讓人解讀,對於解釋研究結果的幫助有限。這時候,M5P樹狀回歸預測演算法就是最佳的解決方案啦。下面舉例進行說明:

 

下面這份散點圖資料,共300個樣本,涵蓋25個地區從1月份到12月份的氣溫數據,25*12=300。

M5P樹狀回歸

 

在month-temperature這份資料集中,我們要用月份month來預測氣溫temperature。 我將月份與氣溫畫成了上面的散布圖 。 每個月的氣溫有很多個點,這是因為地點不同所導致。 但這次的問題我們不考慮地點,僅看月份本身。 從散布圖中可以看到不同月份的氣溫分布不太一樣。 大致上來說,1月到3月、12月等的氣溫較低,6月到9月的氣溫較高,由此就可以看出冬季與夏季的差別。

 

這次是因為輸入資料(屬性)只有一個,而且是我們熟悉的月份,所以我們容易看出資料的規律。 若是在實際應用時,輸入的資料往往高達二三十項。 要如何找出資料的規律,並建構出能夠准確預測的模型,就要借助M5P演算法的技術了。接下來我們要對建模結果進行解讀:

 

 

平均絕對誤/ Mean absolute error

平均絕對誤

 

Mean absolute error平均絕對誤,又稱平均偏差 ,這是評估預測模型最簡單的一個指標。 這表示所有預測值跟實際值之間偏差的平均。 以本例來說,若以M5P建立的預測模型,用月份來預測氣溫,則平均每次都會誤差個3.2438度。

 

 

模型樹/ Model tree

模型樹

 

在本例中,M5P建構了3個線性回歸模型,各別是LM1 、 LM2跟LM3 。 模型樹用if-else的結構來表示什么時候適用哪種線性回歸模型的時機。 用文字來敘述的話,上面的模型樹的意思是:如month小於或等於3.5,則適用LM1模型來預測。

  • 如果month大於3.5,則繼續看下面的規則。 
  • 如果month小於或等於10.5,則適用LM2模型。 
  • 如果month大於10.5,則適用於LM3模型。

 

因為我們的month月份只有1到12,換句話說:

  • 1月到3月:適用LM1
  • 4月到10月:適用LM2
  • 11月與12月:適用LM3

 

仔細一看,1月到3月、11月與12月偏向冬季,4月到10月則偏向夏季。 M5P在建構預測模型時就很敏銳地發現到了月份與季節的關系呢。

 

 

線性模型/ Linear Models

線性模型

 

這里列出了三個線性模型,LM num: 1就是LM1、LM num: 2則是LM2、那LM num: 3就是指LM3。

 

 

非線性預測模型視覺化/ Model Visualization

 

非線性預測模型視覺化

 

上圖為LM1、LM2跟LM3畫成折線圖,並搭配原本月份與氣溫的散布圖的整合結果。 藍點為氣溫的實際值,紅點與紅線為3個線性模型的氣溫預測值。 3月到4月、10月到11月之間沒有連線,這是因為他們適用於不同的模型。

比較實際值與預測模型之后,是不是更容易讓你解釋資料的變化了呢? M5P就是這么好用啊。

 

相關推薦:

數據挖掘之二——DecisionStump&C4.5&LMT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM