Gradyan Artırma: GBM ve XGBoost
Boosting ve bagging karşılaştırması, GradientBoostingClassifier, XGBClassifier ve erken durdurma.
Gradyan Artırma: GBM ve XGBoost, CoddyKit'te ücretsiz bir Learn AI with Python 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, 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.
Artırma ve Torbalama
Torbalama ağaçları paralel olarak eğitir ve sonuçlarının ortalamasını alır. Artırma ağaçları sıralı olarak eğitir; her yeni ağaç, önceki ağaçların hatalarını düzeltir.
Artırma, yanlılığı azaltır ve tablo biçimli verilerde genellikle torbalamadan daha yüksek doğruluk sağlar.
Sıralı Zayıf Öğreniciler
Gradyan artırma, sığ ağaçlardan oluşan bir topluluk modeli oluşturur (zayıf öğreniciler). Her ağaç, mevcut topluluk modelinin geride bıraktığı artıklara (kayıp gradyanlarına) uyar.
Çok sayıda küçük düzeltmenin eklenmesi, genel olarak güçlü bir model oluşturur.
GradientBoostingClassifier
Scikit-learn, GradientBoostingClassifier sağlar. Temel parametreler n_estimators (ağaç sayısı), learning_rate (küçültme) ve max_depth (ağaç boyutu) değerleridir.
from sklearn.ensemble import GradientBoostingClassifier
gbm = GradientBoostingClassifier(
n_estimators=200,
learning_rate=0.1,
max_depth=3,
random_state=0,
)
gbm.fit(Xtr, ytr)
print(gbm.score(Xte, yte))Öğrenme Oranı Dengesi
learning_rate, her ağacın katkısını ölçeklendirir. Daha düşük bir öğrenme oranı daha fazla ağaç gerektirir; ancak genellikle daha iyi genelleme sağlar.
Yaygın bir strateji, düşük bir öğrenme oranı (ör. 0.05) ve çok sayıda tahminleyici belirlemek, ardından erken durdurma kullanmaktır.
from sklearn.ensemble import GradientBoostingClassifier
gbm = GradientBoostingClassifier(
n_estimators=1000,
learning_rate=0.05,
max_depth=3,
)max_depth Neden Küçük Kalır
Artırmada her ağaç bir zayıf öğrenicidir; bu nedenle max_depth genellikle 3 ile 6 arasındadır. Derin ağaçlar artıklara hızla aşırı uyum sağlar. Topluluk modeli gücünü birkaç derin ağaçtan değil, çok sayıda sığ ağaçtan kazanır.
XGBoost'a Giriş
XGBoost, iyileştirilmiş bir gradyan artırma kitaplığıdır: daha hızlıdır, düzenlileştirme içerir ve eksik değerleri yerleşik olarak işler. Tablo biçimli makine öğrenmesi yarışmalarında en başarılı yöntemlerden biridir.
from xgboost import XGBClassifier
model = XGBClassifier(
n_estimators=300,
learning_rate=0.1,
max_depth=4,
random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))Temel XGBoost Parametreleri
Temel ayarlar GBM'dekilere benzer:
n_estimatorsartırma turu sayısılearning_ratetur başına küçültmemax_depthağaç derinliğisubsamplevecolsample_bytreedüzenlileştirme için rastgelelik ekler
from xgboost import XGBClassifier
model = XGBClassifier(
n_estimators=500,
learning_rate=0.05,
max_depth=4,
subsample=0.8,
colsample_bytree=0.8,
)XGBoost'ta Düzenlileştirme
XGBoost, L1 (reg_alpha) ve L2 (reg_lambda) cezalarının yanı sıra gamma değerini de ekler (bölme için gereken minimum kayıp azalması). Bunlar, yalın GBM'nin sunduğundan daha güçlü biçimde karmaşıklığı denetler ve aşırı uyumu azaltır.
from xgboost import XGBClassifier
model = XGBClassifier(
reg_alpha=0.1,
reg_lambda=1.0,
gamma=0.1,
)Erken Durdurma
early_stopping_rounds, doğrulama metriği N tur boyunca iyileşmediğinde eğitimi durdurur. Böylece uygun ağaç sayısı otomatik olarak bulunur ve aşırı uyum önlenir.
from xgboost import XGBClassifier
model = XGBClassifier(
n_estimators=2000,
learning_rate=0.05,
early_stopping_rounds=50,
eval_metric="logloss",
)
model.fit(Xtr, ytr, eval_set=[(Xte, yte)], verbose=False)
print("Best iteration:", model.best_iteration)Özellik Önemini Okuma
XGBoost, feature_importances_ değerini ve kazanç ile ağırlık gibi önem türleri içeren daha kapsamlı get_booster().get_score() işlevini sunar. Kazanç, bir özelliğin kaybı ne kadar azalttığını gösterir.
model = XGBClassifier(n_estimators=200).fit(Xtr, ytr)
print(model.feature_importances_)
booster = model.get_booster()
print(booster.get_score(importance_type="gain"))Artırma Ne Zaman Tercih Edilmeli
Gradyan artırma, iyi ayarlandığında tablo biçimli verilerde genellikle rastgele ormanlardan daha iyi sonuç verir. Bunun karşılığında hiperparametrelere daha duyarlıdır ve sıralı eğitim daha yavaştır. XGBoost'un varsayılanlarıyla başlayın, ardından learning_rate ve max_depth değerlerini ayarlayın ve erken durdurma kullanın.
Kısa Kontrol
Artırma bilginizi kontrol edin.
Özet
Özet: Artırma, ağaçları sıralı olarak eğitir ve her ağaç önceki hataları düzeltir. n_estimators, learning_rate (düşük oran + çok sayıda ağaç) ve küçük bir max_depth değeri ayarlanmalıdır. XGBoost, düzenlileştirme (reg_alpha, reg_lambda, gamma) ve en uygun ağaç sayısını otomatik olarak seçen early_stopping_rounds özelliğini ekler.
Sıkça Sorulan Sorular
“Gradyan Artırma: GBM ve XGBoost” dersi ücretsiz mi?
Evet — “Gradyan Artırma: GBM ve XGBoost” 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.
“Gradyan Artırma: GBM ve XGBoost” dersinde ne öğreneceğim?
Boosting ve bagging karşılaştırması, GradientBoostingClassifier, XGBClassifier ve erken durdurma. 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 3. dersidir.
“Gradyan Artırma: GBM ve XGBoost” 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
- Karar Ağaçları: Kuram ve Uygulama
- Rastgele Ormanlar ve Bagging
- Gradyan Artırma: GBM ve XGBoost
- LightGBM ve CatBoost