CodeBlanks Logo Icon CodeBlanks

Karar ağacı nedir?

Karar ağacı, veriyi sorularla bölerek sınıflandıran ağaç benzeri bir modeldir.

Karar ağacı nedir?

Karar ağacı, veriyi evet/hayır sorularıyla adım adım böler: "boy > 170 mi?", "yaş < 30 mu?". Her iç düğüm bir soru, her yaprak bir karardır.

from sklearn.tree import DecisionTreeClassifier, export_text
X = [[20, 0], [25, 1], [40, 0], [50, 1]]   # yaş, ev sahibi mi
y = [0, 0, 1, 1]
m = DecisionTreeClassifier(random_state=0).fit(X, y)
print(export_text(m, feature_names=["yas", "ev"]))

Ağaçlar yorumlanabilir: modelin neden bir karar verdiği, köke kadar okunan kurallarla açıklanabilir.

Ölçeklendirme gerekmez

Ağaçlar her özelliği ayrı ayrı bir eşikle karşılaştırır; mesafe hesaplamaz. Bu yüzden ölçeklendirme sonucu değiştirmez ve karışık birimli veriyle doğrudan çalışır.

print(m.get_depth())      # ağacın derinliği
print(m.get_n_leaves())   # yaprak sayısı

Aynı aile regresyonda da çalışır: DecisionTreeRegressor yapraklarda o bölgedeki örneklerin ortalamasını tahmin eder.

Uygulama Ağaç kur

DecisionTreeClassifier(random_state=0) eğit; [[30, 1]] ve [[45, 0]] için tahminleri, ardından ağacın derinliğini yazdır.

Başlangıç kodu

model.py
from sklearn.tree import DecisionTreeClassifier

X = [[20, 0], [25, 1], [40, 0], [50, 1]]
y = [0, 0, 1, 1]

# buraya yaz

Örnek çözüm

model.py
from sklearn.tree import DecisionTreeClassifier

X = [[20, 0], [25, 1], [40, 0], [50, 1]]
y = [0, 0, 1, 1]

m = DecisionTreeClassifier(random_state=0).fit(X, y)
print(m.predict([[30, 1], [45, 0]]))
print(m.get_depth())

Beklenen çıktı

[0 1]
1

Soru ve cevaplar

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

1 Karar ağacında bir yaprak düğüm neyi temsil eder?

  • Bir özelliği
  • Eğitim hatasını
  • Son kararı (tahmini) Doğru cevap
  • Bir soruyu

Açıklama: İç düğümler soru sorar; yapraklar sınıf ya da değer verir.

2 Ağacın kurallarını metin olarak yazdır.

Soru
print(____(m, feature_names=["yas", "ev"]))
Cevap
print(export_text(m, feature_names=["yas", "ev"]))

Açıklama: export_text ağacı girintili kurallar olarak verir.

3 Parçaları eşleştir.

Kavram Anlamı
kök İlk soru
iç düğüm Ara soru
yaprak Karar
get_depth() Soru zincirinin uzunluğu

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