Menu
CoddyTech

למה יערות עובדים

חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 42 מתוך 58.

העצים ביער שונים זה מזה בכוונה. כל אחד מהם מאומן על מדגם bootstrap: שורות שנדגמו באקראי עם החזרה, כך שחלקן חוזרות על עצמן וחלקן נותרות בחוץ.

כל שאלה בוחרת גם כמה מאפיינים אקראיים. העצים עושים טעויות שונות, וההצבעה מבטלת אותן. שני מיני גחליליות:

שני תרשימים של 150 גחליליות, משך ההבזק לאורך הציר האופקי וההפסקה לאורך הציר האנכי, עיגולים כחולים למין אחד ומשולשים אדומים לשני. משמאל, עץ אחד: הגבול שלו כולל רצועות דקות שמגיעות עד לגחליליות בודדות. מימין, יער של 100 עצים: גבול חלק אחד בין הקבוצות

היער משאיר רצועה רק במקום שבו רוב העצים מסכימים.

העצים נמצאים בתוך forest.estimators_:

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

זה מדפיס 0.737. כל היער מקבל ציון 0.895.

challenge icon

אתגר

בינוני

האם יער מנצח את העצים של עצמו? קוד הפתיחה מאמן את forest על riders.csv, עם רוכבים שסיימו או לא סיימו רכיבה של 160 ק״מ בפחות מ־6 שעות, ומגדיר את התרשים.

  1. חשבו את הציון של כל עץ ביער על שורות הבדיקה.
  2. הציגו היסטוגרמה של הציונים עם bins=10, וסמנו את forest_acc בקו אנכי אדום.
  3. הדפיסו כמה עצים היער מנצח.

ברכיבה אחרת הודפס The forest beats 88 of its 100 trees ונוצר התרשים הבא:

היסטוגרמה שכותרתה The Forest and Its Trees: דיוקי הבדיקה של העצים נעים בין 0.53 בערך ל־0.85, רובם קרובים ל־0.70, וקו אנכי אדום נמצא קרוב ל־0.77, מימין לרוב העמודות

לאחר מכן 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")

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה למידה מונחית

תרגלו בעצמכם: קומפיילר Python אונליין