0Pricing
Python Academy · Ders

Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar

Karar ağacı ve topluluk ormanı modelleri oluşturun ve ayarlayın.

Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Karar Ağacı Kavramları

Bir karar ağacı, bir dizi ikili soru sorarak verileri alt kümelere böler. Her iç düğüm bir özellik eşiğidir; her yaprak bir tahmindir.

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = DecisionTreeClassifier(max_depth=3, random_state=0).fit(X, y)
print("Depth:", model.get_depth())
print("Leaves:", model.get_n_leaves())

DecisionTreeClassifier

Temel hiperparametreler: max_depth, min_samples_split, min_samples_leaf. Daha derin ağaçlar aşırı uyuma, daha sığ ağaçlar ise yetersiz uyuma eğilimlidir.

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

model = DecisionTreeClassifier(max_depth=5, min_samples_leaf=5)
model.fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

DecisionTreeRegressor

Karar ağaçları, her yaprakta hedef değerinin ortalamasını tahmin ederek regresyonu da destekler.

from sklearn.tree import DecisionTreeRegressor
from sklearn.datasets import make_regression
from sklearn.metrics import mean_squared_error

X, y = make_regression(noise=15, random_state=0)
model = DecisionTreeRegressor(max_depth=4).fit(X, y)
print("RMSE:", mean_squared_error(y, model.predict(X))**0.5)

Özellik Önemi

model.feature_importances_, safsızlıktaki azalmaya göre her özelliğin göreli önemini verir.

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
import numpy as np

X, y = load_iris(return_X_y=True)
feature_names = load_iris().feature_names
model = DecisionTreeClassifier().fit(X, y)
for name, imp in sorted(zip(feature_names, model.feature_importances_), key=lambda x: -x[1]):
    print(f"{name}: {imp:.3f}")

Rastgele Ormana Genel Bakış

Bir Rastgele Orman, önyükleme örnekleri üzerinde birbiriyle düşük korelasyonlu çok sayıda karar ağacı eğitir ve tahminlerinin ortalamasını alır — yanlılığı artırmadan varyansı azaltır.

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

model = RandomForestClassifier(n_estimators=100, random_state=0)
model.fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

RandomForestRegressor

Rastgele ormanlar regresyonda da aynı ölçüde iyi çalışır.

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
from sklearn.metrics import r2_score

X, y = make_regression(noise=10, random_state=0)
model = RandomForestRegressor(n_estimators=100, random_state=0).fit(X, y)
print("R²:", r2_score(y, model.predict(X)))

Torba Dışı Skor

Her ağacın önyükleme örneklerinde bulunmayan örnekleri kullanarak ücretsiz bir doğrulama skoru elde etmek için oob_score=True ayarını yapın; ayrı bir sınama kümesine gerek kalmaz.

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = RandomForestClassifier(n_estimators=100, oob_score=True, random_state=0).fit(X, y)
print("OOB score:", model.oob_score_)

Gradyan Artırma

Gradyan artırma (GBM), ağaçları art arda eğitir; her ağaç bir öncekinin hatalarını düzeltir. Çoğu zaman Rastgele Ormanlardan daha doğrudur, ancak eğitilmesi daha uzun sürer.

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = GradientBoostingClassifier(n_estimators=100).fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

XGBoost / LightGBM

XGBoost ve LightGBM, optimize edilmiş gradyan artırma kitaplıklarıdır — sklearn'in GBM'sine göre daha hızlı, daha ölçeklenebilir ve çoğu zaman daha doğrudur.

# pip install xgboost lightgbm
from xgboost import XGBClassifier
from lightgbm import LGBMClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

xgb = XGBClassifier(n_estimators=100, eval_metric="logloss").fit(X_tr, y_tr)
print("XGB acc:", xgb.score(X_te, y_te))

n_estimators Ayarlama

Rastgele Ormandaki daha fazla ağaç, bir noktaya kadar aşırı uyuma yol açmadan varyansı azaltır. En uygun sayıyı bulmak için doğrulama eğrisini kullanın.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.datasets import make_classification
import numpy as np

X, y = make_classification(random_state=0)
for n in [10, 50, 100, 200]:
    scores = cross_val_score(RandomForestClassifier(n_estimators=n, random_state=0), X, y, cv=5)
    print(f"n={n}: {scores.mean():.3f}")

Bir Karar Ağacını Görselleştirme

Ağacın öğrendiklerini incelemek için sklearn.tree.plot_tree veya export_text kullanın.

from sklearn.tree import DecisionTreeClassifier, export_text, plot_tree
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = DecisionTreeClassifier(max_depth=2).fit(X, y)
print(export_text(model, feature_names=load_iris().feature_names.tolist()))

Kısa Kontrol

Rastgele Orman, tek bir karar ağacına kıyasla aşırı uyumu nasıl azaltır?

Özet

Karar ağaçları verileri özellik eşiklerine göre böler ve yaprak değerleriyle tahmin yapar. Aşırı uyumu denetlemek için max_depth değerini ayarlayın. Rastgele Ormanlar, varyansı azaltmak için çok sayıda ağacın ortalamasını alır. Gradyan artırma, yüksek doğruluk için ağaçları art arda eğitir. Üretimde XGBoost veya LightGBM'i tercih edin.

Sıkça Sorulan Sorular

“Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar” dersi ücretsiz mi?

Evet — “Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar” dersinde ne öğreneceğim?

Karar ağacı ve topluluk ormanı modelleri oluşturun ve ayarlayın. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. scikit-learn API'si: fit, transform, predict
  2. Doğrusal Modeller: Regresyon ve Sınıflandırma
  3. Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar
  4. Model Değerlendirme ve Çapraz Doğrulama
← Python Academy Sayfasına Dön