隨機森林的方式如何處理特徵缺失值


RF中有相應的缺失值處理方法,本次記錄其兩種缺失值處理技巧

暴力填補


Python中的na.roughfix包提供簡單的缺失值填補策略:
對於訓練集中處於同一個類別下的數據,如果是類別變量缺失,則用衆數補全,如果是連續變量,則用中位數。

相似度矩陣填補


RF的Python實現中,有一個rfImpute包,可以提供更加高層的缺失值填補。

首先先用暴力填補法進行粗粒度填充。
然後使用上述填補後的訓練集來訓練隨機森林模型,並統計相似度矩陣(proximity matrix),然後再看之前缺失值的地方,如果是分類變量,則用沒有缺失的觀測實例的相似度中的權重進行投票;如果是連續性變量,則用相似度矩陣進行加權求均值。
上述投票方案迭代進行4~6次。


解釋相似度矩陣:
相似度矩陣就是任意兩個觀測實例間的相似度矩陣,原理是如果兩個觀測實例落在同一棵樹的相同節點次數越多,則這兩個觀測實例的相似度越高。

詳細來說:
Proximity 用來衡量兩個樣本之間的相似性。原理就是如果兩個樣本落在樹的同一個葉子節點的次數越多,則這兩個樣本的相似度越高。當一棵樹生成後,讓數據集通過這棵樹,落在同一個葉子節點的”樣本對(xi,xj)” proximity 值 P(i,j) 加 1 。所有的樹生成之後,利用樹的數量來歸一化 proximity matrix。繼而,我們得到缺失值所在樣本的權重值,權重值相近的可以用於缺失值的填補參考。
 

轉自:https://www.jianshu.com/p/a4bf9224d66c

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章