Menu
CoddyTech

יערות אקראיים

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

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

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

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

בקוד, זהו מודל נוסף להתאמה:

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 ימים של גייזרים, זה מדפיס 0.893, בעוד שעץ אחד קיבל ציון 0.813. n_estimators הוא מספר העצים.

מצביעים רבים, פחות טעויות.

challenge icon

אתגר

בינוני

בית ספר לכלבי נחייה רוצה לדעת מראש אילו גורים יוסמכו. קוד ההתחלה מפצל את puppies.csv, מחשב את הציון של עץ אחד וקורא מספר של עצים.

  1. אמנו יער עם מספר העצים הזה (random_state=0) והדפיסו את דיוקו במבחן.
  2. הדפיסו איזה מודל מנצח ובכמה, או A tie.

עבור בית ספר אחר ו-50:

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

לאחר מכן נסו 1: יער עם עץ אחד מצליח באופן מפתיע לרעה. השיעור הבא מסביר למה.

נסו בעצמכם

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

# גורים בבית ספר לכלבי נחייה: רוגע, ריכוז ותגובת בהלה לרעשים חזקים (1 עד 10),
# משקל, מספר החודשים עם המשפחה שגידלה אותם, והאם הוכשרו ככלבי נחייה (1) או לא (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())

# אל תשנו את השורות שלהלן: עץ אחד שצריך לנצח
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}")

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

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

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

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