Menu
CoddyTech

Rastgele Ormanlar

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 41 / 58.

Tek bir karar ağacı kararsızdır: birkaç eğitim satırını değiştirince soruları da değişir. Bu bölüm, birçok karar ağacına sorular sorarak ağaçları daha istikrarlı hâle getirir.

rastgele orman birçok ağaç eğitir ve bunların oy vermesini sağlar. İşte bir gayzer için yanıt veren yedi ağaç:

Bir sıra hâlinde dizilmiş yedi küçük ağaç; her birinin altında oyu yazıyor: evet, evet, hayır, evet, evet, hayır, evet. Her oydan, Orman: evet, 5'e 2 oy yazan tek bir kutuya oklar uzanıyor

Kodda, eğitilecek bir model daha var:

from sklearn.ensemble import RandomForestClassifier

forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(forest.score(X_test, y_test))

300 gayzer günü üzerinde bu kod, bir ağacın 0.813 puan aldığı yerde 0.893 yazdırır. n_estimators, ağaç sayısıdır.

Çok sayıda seçmen, daha az hata.

challenge icon

Görev

Orta

Bir rehber köpek okulu, hangi yavru köpeklerin yeterliliği kazanacağını erkenden öğrenmek istiyor. Başlangıç kodu puppies.csv dosyasını böler, tek bir ağacın puanını hesaplar ve ağaç sayısını okur.

  1. Bu sayıda ağaçtan oluşan bir orman eğit (random_state=0) ve test doğruluğunu yazdır.
  2. Hangi modelin ne kadar farkla kazandığını ya da A tie yazdır.

Başka bir okul ve 50 için:

Single tree: 0.740
Forest: 0.860
The forest wins by 0.120

Sonra 1 değerini dene: tek ağaçtan oluşan bir orman şaşırtıcı derecede kötü sonuç verir. Sonraki ders bunun nedenini gösteriyor.

Kendin dene

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

# Rehber köpek okulundaki yavru köpekler: sakinlik, odaklanma ve yüksek seslerden irkilme (1 ile 10 arası),
# ağırlık, onları yetiştiren aileyle geçirilen ay sayısı ve rehber köpek olmaya uygunluk (1) veya uygunsuzluk (0)
puppies = pd.read_csv("puppies.csv")
X = puppies[["calmness", "focus", "noise_startle", "weight_kg", "months_with_family"]]
y = puppies["qualified"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())

# Aşağıdaki satırları değiştirmeyin: geçmeniz gereken tek bir ağaç
tree = DecisionTreeClassifier(random_state=0)
tree.fit(X_train, y_train)
tree_acc = tree.score(X_test, y_test)
print(f"Single tree: {tree_acc:.3f}")

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimli Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi