0Pricing
Learn AI with Python · Ders

Rastgele Ormanlar ve Bagging

Topluluk modeli kavramı, RandomForestClassifier, n_estimators, özellik önemi ve OOB skoru.

Rastgele Ormanlar ve Bagging, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. 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, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Tekli Ağaçların Sorunu

Tek bir karar ağacının varyansı yüksektir: biraz farklı verilerle yeniden eğitilmesi çok farklı bir ağaç üretebilir. Topluluk yöntemleri, birçok ağacı birleştirerek bu sorunu çözer.

Bagging (Bootstrap Birleştirme)

Bagging, farklı önyükleme örnekleri (verilerin yerine koymalı rastgele örneklenmesi) üzerinde birçok model eğitir ve ardından tahminlerinin ortalamasını alır.

Varyansı yüksek birçok modelin ortalamasını almak, yanlılığı fazla artırmadan genel varyansı azaltır.

from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier

bag = BaggingClassifier(
    estimator=DecisionTreeClassifier(),
    n_estimators=100,
    random_state=0,
)
bag.fit(Xtr, ytr)

Bagging'den Rastgele Ormanlara

Rastgele orman, ağaçlar üzerinde uygulanan bagging'e ek bir yöntem daha ekler: her bölmede yalnızca rastgele bir özellik alt kümesini dikkate alır.

Bu, ağaçların birbiriyle olan ilişkisini azaltır; böylece hataları daha iyi birbirini götürür ve topluluğun başarımı artar.

RandomForestClassifier Temelleri

RandomForestClassifier kullanın. Temel parametre olan n_estimators, oluşturulacak ağaç sayısını belirler. Daha fazla ağaç = daha kararlı ancak daha yavaş çalışma.

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier(n_estimators=200, random_state=0)
rf.fit(Xtr, ytr)
print("Accuracy:", rf.score(Xte, yte))

n_jobs ile Paralel Eğitim

Ormandaki ağaçlar birbirinden bağımsızdır; bu nedenle paralel olarak eğitilebilirler. Tüm CPU çekirdeklerini kullanmak ve eğitimi büyük ölçüde hızlandırmak için n_jobs=-1 değerini ayarlayın.

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier(
    n_estimators=500,
    n_jobs=-1,        # use all cores
    random_state=0,
)
rf.fit(Xtr, ytr)

Torba Dışı (OOB) Puanı

Her ağaç, örneklerin yaklaşık üçte birini dışarıda bırakır (önyükleme örneklemesi bunları seçmemiştir). Bu torba dışı örnekler, yerleşik bir doğrulama kümesi oluşturur.

Ayrı bir bölmeye gerek kalmadan genelleme hatasının ücretsiz bir tahminini elde etmek için oob_score=True değerini ayarlayın.

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier(
    n_estimators=300,
    oob_score=True,
    random_state=0,
)
rf.fit(Xtr, ytr)
print("OOB score:", rf.oob_score_)

Ormandaki Ağaç Derinliğini Denetleme

Aynı ağaç parametreleri geçerlidir: max_depth, min_samples_leaf ve max_features (her bölmede denenecek özellik sayısı).

max_features="sqrt", sınıflandırma için yaygın varsayılan değerdir.

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier(
    n_estimators=300,
    max_depth=12,
    max_features="sqrt",
    random_state=0,
)

Yerleşik Özellik Önemleri

Tekli ağaçlar gibi ormanlar da tüm ağaçların ortalaması alınmış feature_importances_ değerini sunar. Safsızlık tabanlı bu önem ölçümü hızlıdır ancak kardinalitesi yüksek özelliklere karşı yanlı olabilir.

from sklearn.ensemble import RandomForestClassifier
import numpy as np

rf = RandomForestClassifier(n_estimators=200, random_state=0).fit(Xtr, ytr)
order = np.argsort(rf.feature_importances_)[::-1]
for i in order[:5]:
    print(i, rf.feature_importances_[i])

Permütasyon Önemi

Permütasyon önemi daha güvenilirdir: tek bir özellik sütununu karıştırır ve puanın ne kadar düştüğünü ölçer. Büyük bir düşüş, özelliğin önemli olduğu anlamına gelir.

Bu yöntem modelden bağımsızdır ve safsızlık yanlılığını önler.

from sklearn.inspection import permutation_importance

result = permutation_importance(
    rf, Xte, yte, n_repeats=10, random_state=0, n_jobs=-1
)
print(result.importances_mean)

Permütasyon Sonuçlarını Yorumlama

permutation_importance, yinelemeler boyunca importances_mean ve importances_std değerlerini döndürür. Etkiyi eğitim uyumuna göre değil, genelleme üzerindeki etkisine göre ölçmek için bunu ayrılmış bir küme üzerinde hesaplayın.

import numpy as np

means = result.importances_mean
stds = result.importances_std
for i in np.argsort(means)[::-1]:
    print(f"feature {i}: {means[i]:.3f} +/- {stds[i]:.3f}")

Rastgele Ormanlar Ne Zaman Kullanılmalı

Rastgele ormanlar güçlü bir varsayılan seçimdir: sağlamdır, çok az ayar gerektirir, doğrusal olmayanlıkları ve etkileşimleri işler ve aşırı öğrenmeye dirençlidir. Dezavantajları, tek bir ağaca göre daha fazla bellek kullanmaları, daha yavaş tahmin yapmaları ve daha az yorumlanabilir olmalarıdır.

Hızlı Kontrol

Bagging ve rastgele ormanları anlayıp anlamadığınızı kontrol edin.

Özet

Özet: Bagging, varyansı azaltmak için önyükleme örnekleri üzerinde modeller eğitir ve bunların ortalamasını alır. Rastgele ormanlar, her bölmede rastgele özellik alt kümeleri ekler. n_estimators ile ayar yapın, hız için n_jobs=-1 kullanın, oob_score ile ücretsiz doğrulama elde edin ve güvenilir sıralamalar için safsızlık tabanlı önem ölçümü yerine permutation_importance kullanmayı tercih edin.

Sıkça Sorulan Sorular

“Rastgele Ormanlar ve Bagging” dersi ücretsiz mi?

Evet — “Rastgele Ormanlar ve Bagging” 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 Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Rastgele Ormanlar ve Bagging” dersinde ne öğreneceğim?

Topluluk modeli kavramı, RandomForestClassifier, n_estimators, özellik önemi ve OOB skoru. Learn AI with Python 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.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, 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 2. dersidir.

“Rastgele Ormanlar ve Bagging” 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 Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python 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. Karar Ağaçları: Kuram ve Uygulama
  2. Rastgele Ormanlar ve Bagging
  3. Gradyan Artırma: GBM ve XGBoost
  4. LightGBM ve CatBoost
← Learn AI with Python Sayfasına Dön