CodeBlanks Logo Icon CodeBlanks

Bölme kriteri

Karar ağaçları, gini veya entropy kriteriyle veriyi böler.

Gini safsızlığı

Ağaç her adımda düğümleri en "saf" yapacak soruyu seçer. Saflık ölçüsü varsayılan olarak Gini'dir: 1 - Σ pᵢ². Tek sınıftan oluşan düğümde Gini 0'dır; iki sınıf eşit karışıksa 0.5'tir.

def gini(p):
    p = np.array(p)
    return 1 - (p ** 2).sum()
print(gini([1.0, 0.0]))   # 0.0  saf
print(gini([0.5, 0.5]))   # 0.5  en karışık

Bir bölmenin değeri, çocuk düğümlerin ağırlıklı Gini ortalamasının ebeveynden ne kadar düştüğüdür.

Entropi

Diğer seçenek bilgi kuramından gelen entropidir: -Σ pᵢ log₂ pᵢ. Saf düğümde 0, iki sınıf eşitse 1'dir. Bölmenin entropiyi düşürmesine bilgi kazancı denir.

m = DecisionTreeClassifier(criterion="entropy", random_state=0)

Pratikte Gini ile entropi çoğu zaman aynı ağacı üretir; Gini logaritma içermediği için biraz daha hızlıdır.

Uygulama Gini hesapla

Bir etiket listesinin Gini değerini veren gini(etiketler) fonksiyonunu yaz (sınıf oranlarını np.unique(..., return_counts=True) ile bul). [0, 0, 1, 1] ve [0, 0, 0, 1] için sonuçları yazdır.

Başlangıç kodu

model.py
import numpy as np

# buraya yaz

Örnek çözüm

model.py
import numpy as np

def gini(etiketler):
    _, sayi = np.unique(etiketler, return_counts=True)
    p = sayi / sayi.sum()
    return 1 - (p ** 2).sum()

print(gini([0, 0, 1, 1]))
print(gini([0, 0, 0, 1]))

Beklenen çıktı

0.5
0.375

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Sınıf oranları 0.75 ve 0.25 olan bir düğümün Gini değeri kaçtır?

  • 0.625
  • 0.375 Doğru cevap
  • 0.5
  • 0.25

Açıklama: 1 - (0.75² + 0.25²) = 1 - (0.5625 + 0.0625) = 0.375.

2 Bölme ölçütü olarak entropiyi seç.

Soru
m = DecisionTreeClassifier(____="entropy")
Cevap
m = DecisionTreeClassifier(criterion="entropy")

Açıklama: criterion "gini" (varsayılan), "entropy" ya da "log_loss" olabilir.

3 Değerleri eşleştir.

Kavram Anlamı
Gini = 0 Saf düğüm
Gini = 0.5 İki sınıf eşit karışık
Entropi = 1 İki sınıf eşit (log₂)
bilgi kazancı Entropideki düşüş

Başlangıç bölümündeki tüm dersler