缺失值問題可以從三個方面來考慮
1. 在選擇**屬性的時候,訓練樣本存在缺失值,如何處理?(計算**損失減少值時,忽略特徵缺失的樣本,最終計算的值乘以比例(實際參與計算的樣本數除以總的樣本數))
假如你使用id3演算法,那麼選擇分類屬性時,就要計算所有屬性的熵增(資訊增益,gain)。假設10個樣本,屬性是a,b,c。在計算a屬性熵時發現,第10個樣本的a屬性缺失,那麼就把第10個樣本去掉,前9個樣本組成新的樣本集,在新樣本集上按正常方法計算a屬性的熵增。然後結果乘0.9(新樣本佔raw樣本的比例),就是a屬性最終的熵。
2. 分類屬性選擇完成,對訓練樣本分類,發現樣本屬性缺失怎麼辦?(將該樣本分配到所有子節點中,權重由1變為具有屬性a的樣本被劃分成的子集樣本個數的相對比率,計算錯誤率的時候,需要考慮到樣本權重)
比如該節點是根據a屬性劃分,但是待分類樣本a屬性缺失,怎麼辦呢?假設a屬性離散,有1,2兩種取值,那麼就把該樣本分配到兩個子節點中去,但是權重由1變為相應離散值個數佔樣本的比例。然後計算錯誤率的時候,注意,不是每個樣本都是權重為1,存在分數。
3. 訓練完成,給測試集樣本分類,有缺失值怎麼辦?(分類時,如果待分類樣本有缺失變數,而決策樹決策過程中沒有用到這些變數,則決策過程和沒有缺失的資料一樣;否則,如果決策要用到缺失變數,決策樹也可以在當前節點做多數投票來決定(選擇樣本數最多的特徵值方向)。)
(u)如果有單獨的缺失分支,使用此分支。(c)把待分類的樣本的屬性a值分配乙個最常出現的a的屬性值,然後進行分支**。(s)根據其他屬性為該待分類樣本填充乙個屬性a值,然後進行分支處理。(f)在決策樹中屬性a節點的分支上,遍歷屬性a節點的所有分支,探索可能所有的分類結果,然後把這些分類結果結合起來一起考慮,按照概率決定乙個分類。(h)待分類樣本在到達屬性a節點時就終止分類,然後根據此時a節點所覆蓋的葉子節點類別狀況為其分配乙個發生概率最高的類。
決策樹缺失值python 決策樹處理缺失值
缺失值問題可以從三個方面來考慮 1.在選擇 屬性的時候,訓練樣本存在缺失值,如何處理?計算 損失減少值時,忽略特徵缺失的樣本,最終計算的值乘以比例 實際參與計算的樣本數除以總的樣本數 假如你使用id3演算法,那麼選擇分類屬性時,就要計算所有屬性的熵增 資訊增益,gain 假設10個樣本,屬性是a,b...
決策樹 缺失值如何處理
參考部落格 決策樹如何處理缺失值?也就是面對兩個問題 1 如果樣本某個屬性有缺失值,那麼怎麼計算使用這個屬性劃分結點時的資訊增益呢?2 在第一步的基礎上,即使資訊增益計算出來了,那麼由於樣本這一屬性值缺失了,應該將這一樣本劃分到哪個子結點呢?我們分別來看一下訓練集 測試集上怎麼處理缺失值。訓練集 對...
決策樹 連續值的處理
連續值處理 因為連續屬性的可取值數目不再有限,因此不能像前面處理離散屬性列舉離散屬性取值來對結點進行劃分。因此需要連續屬性離散化,常用的離散化策略是二分法,這個技術也是c4.5中採用的策略。下面來具體介紹下,如何採用二分法對連續屬性離散化 下面舉個具體的例子,來看看到底是怎樣劃分的。給定資料集如下 ...