İçerikler
🗺️ Haritam
☕ Destek OlGiriş YapKayıt Ol
Ana sayfainteraktif

Random Forest: yüz ağaç bir orman yapar

2026 · makine öğrenmesi · ensemble · 14 dakika

Tek bir karar ağacı gürültüye takılır, eğitim verisini ezberler. Random Forest çözümü basit: yüzlerce farklı ağaç kur, hepsini oy kullandır, çoğunluğa bak. Aşağıda ağaç eklendikçe karar sınırının nasıl yumuşadığını ve doğruluğun nasıl arttığını canlı görüyorsun.

Ensemble öğrenimi nedir?

Tek uzman yerine çok sayıda uzmanın oyuna katıldığı yaklaşım. Her ağaç biraz farklı — çünkü farklı veri görür ve farklı bölmeler yapar. Ama hataları korelasyonsuz olduğundan, birlikte ortalamak hataları yok eder.

Random Forest iki kaynak rastgelelik kullanır:

  • Bootstrap sampling: her ağaç, eğitim verisinin rastgele bir alt örneğini (yerine koyarak) görür
  • Feature randomness: her bölmede sadece rastgele seçilmiş özellikler denenir — ağaçlar birbirinden farklılaşır
⚡ Random Forest — Karar Sınırı
Doğruluk: 83%● Premium   ✕ Standart
Ağaç sayısı1
2030405060Yaş0481216Harcama (₺k)
TEST NOKTASI — YAŞ 40 · HARCAMA ₺8.0k — (sürükle ▲)
Oylama
0
Premium
1
Standart
%0 PremiumStandart
Her ağacın oyu
1
Yeşil = Premium oyu · Kırmızı = Standart oyu
AKTİF AĞAÇLAR — HER BİRİ FARKLI VERİ GÖRDÜ
Ağaç 1
Harcama ≤ 9.1
acc %83✕ Std

Neden tek ağaçtan daha iyi?

Tek bir ağaç eğitim verisine aşırı uyar — her gürültüyü ezberler. Farklı bootstrap örnekleri gören ağaçlar farklı hataları öğrenir. Ama hatalar birbirinden bağımsız olduğundan, ortalamaları iptal olur. İstatistiksel olarak: N bağımsız ağacın varyansı, tek ağacın varyansının 1/N katıdır.

Var(ortalama) = Var(tek ağaç) / N   (ağaçlar bağımsızsa)
Gerçekte ağaçlar tamamen bağımsız değil (aynı veriyle eğitiliyor),
feature randomness bu korelasyonu kırıp etkiyi artırıyor.

OOB (Out-of-Bag) hatası

Bootstrap sampling sırasında her ağaç, eğitim verisinin ortalama %37'sini hiç görmez (OOB örnekleri). Bu noktalar, o ağaç için doğal bir test seti oluşturur — ayrı validation setine gerek kalmaz.

Tüm ağaçların OOB tahminleri birleştirilince, cross-validation'a yakın ve hesaplaması çok daha ucuz bir hata tahmini elde edilir.

Feature importance

Random Forest her özelliğin ne kadar Gini düşürdüğünü takip eder. Çok sayıda bölmede kullanılan, Gini'yi çok düşüren özellikler önemli kabul edilir. Ücretsiz bir özellik seçimi aracı gibi davranır.

Python'da

from sklearn.ensemble import RandomForestClassifier
import pandas as pd

# Veri
df = pd.read_csv('musteriler.csv')
X = df[['yas', 'harcama']]
y = df['premium']

# Model
rf = RandomForestClassifier(
    n_estimators=100,   # ağaç sayısı
    max_depth=5,        # ağaç derinliği
    max_features='sqrt',# bölmede denenen özellik sayısı
    oob_score=True,     # OOB hatası hesapla
    random_state=42,
)
rf.fit(X, y)

print(f"OOB Doğruluk: {rf.oob_score_:.2%}")        # ~%93
print(f"Özellik Önemi: {rf.feature_importances_}")  # [0.38, 0.62]

# Tahmin
rf.predict([[35, 8.5]])           # [1] → Premium
rf.predict_proba([[35, 8.5]])     # [[0.07, 0.93]]

Ne zaman kullanılır?

  • Tabular veri — yapılandırılmış CSV/SQL verileri için hâlâ en güvenilir baseline
  • Overfitting korkusu — tek ağaç ezberliyor, RF bunu otomatik bastırır
  • Feature importance gerektiğinde — hangi değişken önemli?
  • Az hiperparametre — n_estimators yüksek tut, genelde yeter
  • ⚠ Görüntü ve dil için derin öğrenme daha iyi
  • ⚠ Gradient Boosting (XGBoost) genelde biraz daha iyi acc verir, ama daha hassas tuning gerektirir

Özet

  • Random Forest, bootstrap + feature randomness ile farklılaştırılmış ağaçların oylamasıdır
  • Ağaç sayısı arttıkça karar sınırı yumuşar, varyans düşer
  • OOB örnekleri ücretsiz validation sağlar
  • Tabular veri için güçlü, yorumlanabilir ve güvenilir bir baseline

Önceki: Decision tree: ağacı sen büyüt →

Bu içerik: