למה יערות עובדים
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 42 מתוך 58.
העצים ביער שונים זה מזה בכוונה. כל אחד מהם מאומן על מדגם bootstrap: שורות שנדגמו באקראי עם החזרה, כך שחלקן חוזרות על עצמן וחלקן נותרות בחוץ.
כל שאלה בוחרת גם כמה מאפיינים אקראיים. העצים עושים טעויות שונות, וההצבעה מבטלת אותן. שני מיני גחליליות:
היער משאיר רצועה רק במקום שבו רוב העצים מסכימים.
העצים נמצאים בתוך forest.estimators_:
third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))זה מדפיס 0.737. כל היער מקבל ציון 0.895.
אתגר
בינוניהאם יער מנצח את העצים של עצמו? קוד הפתיחה מאמן את forest על riders.csv, עם רוכבים שסיימו או לא סיימו רכיבה של 160 ק״מ בפחות מ־6 שעות, ומגדיר את התרשים.
- חשבו את הציון של כל עץ ביער על שורות הבדיקה.
- הציגו היסטוגרמה של הציונים עם
bins=10, וסמנו אתforest_accבקו אנכי אדום. - הדפיסו כמה עצים היער מנצח.
ברכיבה אחרת הודפס The forest beats 88 of its 100 trees ונוצר התרשים הבא:
לאחר מכן Coddy מתאר את התרשים שלך.
נסו בעצמכם
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# רוכבים ברכיבת צדקה למרחק 160 ק״מ: סיימו בפחות מ־6 שעות (1) או לא (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() # מערך רגיל, בפורמט שהעצים ביער מצפים לו
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")
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין