Menu
CoddyTech

הגברת גרדיאנט

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

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

כאן הוא מתאים מודל למכירות של בר שייקים, עץ אחר עץ:

נקודות אפורות המציגות מכירות שייקים במשך 40 ימים ביחס לטמפרטורה, ועולות מכ-20 ל-135. קו מנוקד אחרי עץ אחד הוא מדרגה שטוחה וגסה, קו מקווקו אחרי 3 עצים עוקב טוב יותר, וקו רציף אחרי 15 עצים עובר דרך הנקודות

עבור מחלקות, המודל הוא GradientBoostingClassifier:

from sklearn.ensemble import GradientBoostingClassifier

boost = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=0)
boost.fit(X_train, y_train)

learning_rate קובע כמה מכל תיקון לשמור. צעדים קטנים הם זהירים, ולכן הם דורשים יותר עצים.

challenge icon

אתגר

בינוני

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

  1. עבור כל קצב ב-rates, אמנו מודל boosting עם מספר העצים הזה (random_state=0) והדפיסו את דיוק הבדיקה שלו.
  2. הדפיסו את הקצב הטוב ביותר. במקרה של תיקו, השאירו את הקצב המוקדם יותר.

עבור מגדל אחר ו-20:

Forest: 0.860
Boosting at rate 0.01: 0.600
Boosting at rate 0.1: 0.860
Boosting at rate 1.0: 0.900
Best rate for 20 trees: 1.0

לאחר מכן נסו כמה מספרים של עצים: מתי boosting מנצח את היער?

נסו בעצמכם

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier

# סחלבים על המדפים של המגדל: פרחו השנה (1) או לא (0)
orchids = pd.read_csv("orchids.csv")
X = orchids.drop(columns="bloomed")
y = orchids["bloomed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())
rates = [0.01, 0.1, 1.0]

# אל תשנו את השורות שלהלן: היער שיש להשוות אליו
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")

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

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

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

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