《機器學習(周志華)》筆記--決策樹(4)--連續與缺失值:連續值處理、缺失值處理


六、連續與缺失值

1、連續值處理

   到目前為止我們僅討論了基於離散屬性來生成決策樹,現實學習任務中常常遇到連續屬性,有必要討論如何在決策樹學習中使用連續屬性。我們將相鄰的兩個屬性值的平均值作為候選點。

   基本思路:連續屬性離散化。

  常見做法:二分法(這正是C4.5決策樹算法中采用的機制)。

  對於連續屬性a,我們可考察包括 n-1 個元素的候選划分集合n 個屬性值可形成 n-1 個候選點):

                      

   利用每個候選點對數據進行划分,得到兩個子集,計算信息增益,取最大的信息增益對應作為該屬性的信息增益。

              

 舉例:

             

  對於數據集中的屬性“密度”,在決策樹開始學習時,根節點包含的17個訓練樣本在該屬性上取值均不同。該屬性的候選划分點集合包括16個候選值:

    T密度 = {0.244,0.294,0.351,0.381,0.42.,0.459,0.518,0.574,0.600,0.621,0.636,0.648,0.661,0.681,0.708,0.746}

       計算可知屬性“密度”信息增益為0.262,對應划分點0.381.

  對屬性“含糖率”,其候選划分點集合也包括16個候選值:

    T含糖率 = {0.049,0.074,0.095,0.101,0.126,0.155,0.179,0.204,0.213,0.226,0.250,0.265,0.292,0.344,0.373,0.418}

    計算可知其信息增益為0.349,對應於划分點0.126.

   類似的,計算得到的各屬性的信息增益值:

                        

   比較能夠知道紋理的信息增益值最大,因此,“紋理”被選作根節點划分屬性,下面只要重復上述過程遞歸的進行,就能構造出一顆決策樹:

                

  有一點需要注意的是:與離散屬性不同,若當前結點划分屬性為連續屬性,該屬性還可作為其后代結點的划分屬性  

  到目前為止我們僅討論了基於離散屬性來生成決策樹,現實學習任務中常常遇到連續屬性,有必要討論如何在決策樹學習中使用連續屬性。對於連續的屬性,后續進行划分屬性的時候還可以繼續使用。

2、缺失值處理

  現實任務中常會遇到不完整樣本,即樣本的某些屬性值缺失。如果簡單地放棄不連續樣本,僅使用無缺值樣本來進行學習,顯然是對數據信息極大的浪費。顯然我們有必要考慮利用有缺失屬性值的訓練樣例來進行學習。

     在決策樹中處理含有缺失值的樣本的時候,需要解決兩個問題:

  • 如何在屬性值缺失的情況下進行划分屬性的選擇?(比如“色澤”這個屬性有的樣本在該屬性上的值是缺失的,那么該如何計算“色澤”的信息增益?)
  • 給定划分屬性,若樣本在該屬性上的值是缺失的,那么該如何對這個樣本進行划分?(即到底把這個樣本划分到哪個結點里?)

    

  以上簡單介紹了決策樹在訓練階段是如何處理有缺失值的樣本的,若測試樣本屬性也有缺失值,則:

  • 如果有專門處理缺失值的分支,就走這個分支。
  • 用這篇論文提到的方法來確定屬性a的最有可能取值,然后走相應的分支。
  • 從屬性a最常用的分支走
  • 同時探查所有的分支,並組合他們的結果來得到類別對應的概率,(取概率最大的類別)
  • 將最有可能的類別賦給該樣本。

  C4.5中采用的方法是:測試樣本在該屬性值上有缺失值,那么就同時探查(計算)所有分支,然后算每個類別的概率,取概率最大的類別賦值給該樣本

   

 

 

 


免責聲明!

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



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