我使用Weka成功構建了J48(C4.5)決策樹。我現在想評估我的功能有多麼有效或重要。如何在Weka構建的決策樹中查找特徵重要性
一個顯而易見的方法是遍歷所有功能,一次刪除一個,並重新運行分類測試每次看到它配備了具有分類準確率的最大跌幅。但是,這可能會隱藏功能之間的相互依賴關係。
不過,我基於理解的C4.5算法思維的另一種方法。由於樹中的每個分割都基於最大信息增益決策,因此靠近樹根的特徵上的分割必定意味着該特徵比樹中具有較低特徵的分割具有更多的信息增益。因此,對於在樹內幾次分割中出現的給定特徵F,我可以計算出F距離根的平均距離。然後,我可以按平均距離排列所有特徵,最低的平均值是最有價值的特徵。這是否是一個正確的方法?
平均距離根節點不會一個好的度量標準,因爲信息增益的量在樹中的各個層次上不是恆定的。最好總結與特定特徵對應的所有分支的信息增益,並將每個分支處的增益與分支處存在的採樣數加權。 – bogatron 2012-07-20 13:45:08
Weka是否提供每個拆分信息獲取的數據?輸出文本文件不顯示它。 – stackoverflowuser2010 2012-07-20 17:36:36
我不知道Weka是否明確存儲了信息增益,但如果知道每個節點處的觀察值/採樣數,則可以自己計算。我不知道默認樹形可視化是否讓您可以選擇查看每個節點上的樣本數量,但是有一個插件可顯示該信息:http://weka.wikispaces。com/Explorer + tree +可視化+插件 – bogatron 2012-07-23 18:11:16