2010-09-19 101 views

回答

0

只要滿足分裂標準,那麼你繼續分裂(從現存的兩個新節點形成)。

分裂準則通常是父節點信息增益,又名,之間的差的負值(或方差如果變量是離散的,而不是絕對的)和的加權平均IG假定子節點的加權平均信息增益

if weighted_mean(IG_child1, IG_child2) < IG_parent : 
    createNodes(IG_child1, IG_child2) 
else : 
    continue 

因此,這是微不足道的答案,但有可能有你的問題,而如果你不介意的背後更復雜的意圖,我會重新WO rd略微如只要分裂準則滿足,你應該繼續創建節點嗎?

正如你可能剛剛發現,如果你是一個編碼ID3算法,應用分割標準無約束往往會導致過度擬合(即你從訓練數據構建樹沒有按因爲它沒有將真正的模式與噪音區分開來,所以概括得很好)。

因此,這更可能是回答你的問題:技術,以「約束」節點分離(並因此處理過擬合問題)全部落入兩個大類 - 自上而下下一個up。自上而下的一個例子:設置一些閾值(例如,如果子節點的加權平均值小於5%以下,那麼不要分割)?

自下而上的示例:pruning。修剪意味着在分裂標準滿足之後讓算法分裂,然後停止,從底層的節點開始並「非分裂」任何節點,其中子節點與父節點之間的IG差異小於某些節點閾。

這兩種方法並不具有相同的效果,事實上修剪是優越的技術。原因是:如果你自上而下執行分裂閾值,那麼當然會阻止一些分裂;然而,如果它已被允許發生,則下一次拆分(兩個子節點中的一個或兩個拆分爲孫子)可能是有效的拆分(即,高於閾值),但該拆分永遠不會發生。修剪當然會對此作出解釋。

2

當沒有留下要分類的示例或者沒有屬性需要分類時,分支停止。 algorithm description on Wikipedia非常容易遵循,並且還有一些鏈接指向示例和討論。

+1

+1等價說明,當節點上的所有示例都具有相同的目標類時(不需要分割) – Amro 2010-09-19 22:17:15