2016-04-06 26 views
1

Bir karar ağacı oluştururken, her düğümde en iyi özelliği ve sonra bu özellik için en iyi ayırma konumunu seçeriz. Ancak, en iyi özellik için tüm değerler geçerli düğüm/set içindeki örnekler için 0 olduğunda, ne yapabilirim? Tüm örnekler bir tarafa gruplandırılmaya devam eder (< = 0 dalı) ve sonsuz bir döngü oluşur. Örneğin : o zamanBir Karar Ağacı Oluşturma

#left: 1500, #right: 0 

, vb

#left: 1500, #right: 0 

ve ...

Sadece başvuru için, aşağıdaki sözde kod takip ediyorum.

GrowTree(S) 
if (y_i = C for all i in S and some class C) then { 
return new leaf(C)        
} else { 
choose best splitting feature j and splitting point beta (*) 
I choose the one that gives me the max entropy drop 
S_l = {i : X_ij < beta}       
S_r = {i : X_ij >= beta} 
return new node(j, beta, GrowTree(S_l), GrowTree(S_r)) 

}

+0

Ağacı oluşturmak için kodunuzu gösterir misiniz? – Reti43

+0

Sorumu düzenledim. – Jobs

+0

"Ancak, en iyi özellik için tüm değerler örneklerde 0 olduğunda". Bu düğüme ulaşan tüm örnekler aynı sınıftaymış gibi görünüyor (kontrol edebilir misiniz?). eğer öyleyse, düğüm işe yaramaz ve yaratılmamalıdır. –

cevap

2

Bu sadece mümkün değildir. En büyük model kesinlik oranına yol açan eşiği seçmeniz gerekiyor. Her bir örneği aynı dalda tutan eşiğin kullanılması, modellerde kesinlikte 0 artış sağlar, bu nedenle en iyi bölünmüş değildir. Bu özellik, eğer sadece, eğer bu özellikte safsızlık/entropi zaten 0 ise, ancak karar ağacında yaprakların yaratılması için durma kriteridir.

+0

Yukarıdaki karar ağacını kullanarak spam algılama yapıyorum. Şu anda sahip olduğum tek özellik birkaç kelime sayımıdır. "Kelime çantası" nın nasıl bir özellik olarak kullanılabileceğini açıklayabilir misiniz? Bir olasılık veya bir özellik içeren bir özellik ekliyor muyum? – Jobs

+0

Soru yöneltin – lejlot

+0

Sadece yaptım: http://stackoverflow.com/questions/36469548/bag-of-words-feature-for-spam-detection-decision-tree – Jobs

İlgili konular