6

用Weka的C4.5(J48)決策樹處理遺漏的要素屬性值的最佳方法是什麼?缺失值問題發生在訓練和分類過程中。如何處理C4.5(J48)決策樹中缺少的屬性值?

  1. 如果訓練實例中缺少值,我是否正確地假設我放置了'?'該功能的價值?

  2. 假設我能夠成功構建決策樹,然後使用Weka的樹結構在C++或Java中創建我自己的樹代碼。在分類期間,如果我試圖對新實例進行分類,那麼對於缺少值的功能我應該提供什麼值?我將如何通過一個具有未知值的決策節點下降樹?

將使用樸素貝葉斯更好地處理缺失值?我會給他們分配一個非常小的非零概率,對吧?

回答

8

在華盛頓大學佩德羅·多明戈斯ML過程:

這裏有三種方法是什麼佩德羅提出丟失的A值:

  • 分配排序,以節點還有其他例子的A最常見的值n
  • 在具有相同目標值的其他示例中分配最常見的值
  • 指定概率p_iA的每個可能值v_i;將示例的分數p_i分配給樹中的每個後代。

幻燈片和視頻現在可在here查看。

+0

偉大的信息。謝謝。我會看看視頻。 – stackoverflowuser2010

+0

通過「排序到節點n」,你只是在節點n的其他樣本中,對吧? –

+0

我不確定我是否理解最後一點。當前訓練示例中的值可以是「X」或「Y」,但該屬性不能包含具有兩個可用性的兩個值,對嗎?那麼這是什麼意思? – n1try

2

另一種方法是將缺少的值保留爲'?',而不是將其用於信息增益計算。在分類過程中沒有節點應該具有未知值,因爲在信息增益步驟中您忽略了它。對於分類,我相信你只是簡單地考慮未知值,並且不要在分類時刪除它。