n_estimators
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 37/112
- 5 dk
n_estimators, ormandaki ağaç sayısını belirler.
n_estimators
Ağaç sayısı arttıkça orman kararlılaşır ama bir noktadan sonra kazanç durur; aşırı öğrenmeye yol açmaz, yalnızca süreyi uzatır. Bu, random forest'in en rahat ayarıdır:
for n in [1, 10, 50, 200]:
rf = RandomForestClassifier(n_estimators=n, random_state=0).fit(X_train, y_train)
print(n, round(rf.score(X_test, y_test), 3))Pratik kural: skor durulana kadar artır, sonra süreye göre karar ver; 100-500 çoğu problemde yeterlidir.
Diğer önemli ayarlar
Ormanın karmaşıklığını asıl belirleyenler ağaç başına ayarlardır:
RandomForestClassifier(
n_estimators=300,
max_features="sqrt", # bölmede aday özellik; küçük = daha çeşitli ağaç
max_depth=None, # sınırsız ağaçlar varsayılan
min_samples_leaf=1, # büyütmek düzgünleştirir
n_jobs=-1, # ağaçlar paralel eğitilir
)Ağaçlar birbirinden bağımsız olduğu için n_jobs=-1 eğitimi çekirdek sayısıyla neredeyse doğrusal hızlandırır.
Uygulama Ağaç sayısının etkisi
n_estimators = 1, 10, 100 için orman eğit (random_state=0). Her satırda ağaç sayısını ve test doğruluğunu round(..., 3) ile yazdır.
Başlangıç kodu
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
for n in [1, 10, 100]:
rf = RandomForestClassifier(n_estimators=n, random_state=0).fit(X_train, y_train)
print(n, round(rf.score(X_test, y_test), 3))Beklenen çıktı
1 0.881 10 0.951 100 0.944
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 n_estimators'ı çok büyütmek aşırı öğrenmeye yol açar mı?
- Yalnızca az veride
- Hayır; yalnızca süre artar Doğru cevap
- Evet, her zaman
- Yalnızca regresyonda
Açıklama: Daha çok ağaç ortalamayı yalnızca daha kararlı yapar.
2 Her bölmede özelliklerin karekökü kadarını değerlendir.
rf = RandomForestClassifier(max_features=____)
rf = RandomForestClassifier(max_features="sqrt")
Açıklama: "sqrt" sınıflandırmada varsayılandır.
3 Ayarları eşleştir.
| Kavram | Anlamı |
|---|---|
n_estimators |
Ağaç sayısı |
max_features |
Ağaç çeşitliliği |
min_samples_leaf |
Yaprak düzgünlüğü |
n_jobs |
Paralel eğitim |