Menu
CoddyTech

Ormanlar Neden İşe Yarar

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

Bir ormandaki ağaçlar bilerek birbirinden farklıdır. Her biri bir bootstrap örneği üzerinde eğitilir: yerine koyarak rastgele seçilen satırlar; böylece bazıları tekrarlanır, bazıları ise seçilmez.

Her soru ayrıca rastgele seçilen birkaç özellik arasından seçim yapar. Ağaçlar farklı hatalar yapar ve oylar bunları giderir. İki ateş böceği türü:

150 ateş böceğinin yer aldığı iki grafik; yatay eksende yanıp sönme süresi, dikey eksende duraklama süresi gösteriliyor; bir tür mavi dairelerle, diğeri kırmızı üçgenlerle belirtilmiş. Solda, tek bir ağaç: sınırında tek tek ateş böceklerine kadar uzanan ince şeritler var. Sağda, 100 ağaçtan oluşan bir orman: gruplar arasında düzgün bir sınır var

Orman, yalnızca ağaçların çoğunun uzlaştığı bir şeridi korur.

Ağaçlar forest.estimators_ içinde bulunur:

third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))

Bu, 0.737 değerini yazdırır. Ormanın tamamı 0.895 puan alır.

challenge icon

Görev

Orta

Bir orman kendi ağaçlarını geçer mi? Başlangıç kodu, 160 km'lik sürüşü 6 saatin altında tamamlayan veya tamamlayamayan bisikletçileri içeren riders.csv dosyasındaki verilerle forest modelini eğitir ve grafiği hazırlar.

  1. Ormandaki her ağacın test satırlarındaki başarısını hesapla.
  2. Başarı puanlarını bins=10 ile histogramda göster ve forest_acc değerini kırmızı dikey bir çizgiyle işaretle.
  3. Ormanın kaç ağacı geçtiğini yazdır.

Başka bir sürüşte The forest beats 88 of its 100 trees yazdırıldı ve şu grafik çizildi:

The Forest and Its Trees başlıklı bir histogram: ağaçların test doğrulukları yaklaşık 0.53 ile 0.85 arasında; çoğu 0.70 civarında ve kırmızı dikey çizgi yaklaşık 0.77'de, çubukların çoğunun sağında

Coddy daha sonra grafiğini açıklar.

Kendin dene

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

# 160 km'lik bir yardım bisiklet sürüşüne katılanlar: 6 saatten kısa sürede bitirenler (1) ve bitiremeyenler (0)
riders = pd.read_csv("riders.csv")
features = ["weekly_km", "long_ride_km", "age", "years_riding", "rest_days", "sleep_hours"]
X = riders[features].to_numpy()  # basit bir dizi, ormandaki ağaçların beklediği biçim
y = riders["under_6h"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

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

fig, ax = plt.subplots()
ax.set_title("The Forest and Its Trees")
ax.set_xlabel("Test accuracy")
ax.set_ylabel("Trees")

# 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