תמונה מאת עורך
יש מספר עצום של אלגוריתמים של למידת מכונה שמתאימים לדגמן תופעות ספציפיות. בעוד שדגמים מסוימים מנצלים סט של תכונות כדי להתעלות על אחרים, אחרים כוללים לומדים חלשים כדי לנצל את שאר התכונות כדי לספק מידע נוסף למודל, המכונה מודלים של אנסמבל.
הנחת היסוד של דגמי האנסמבל היא לשפר את ביצועי המודל על ידי שילוב התחזיות ממודלים שונים על ידי הפחתת השגיאות שלהם. ישנן שתי טכניקות ההרכבה הפופולריות: חבילה וחיזוק.
Bagging, הידוע גם בשם Bootstrapped Aggregation, מאמן מספר מודלים בודדים על תת-קבוצות אקראיות שונות של נתוני האימון ולאחר מכן מעמיד ממוצע של התחזיות שלהם כדי לייצר את החיזוי הסופי. חיזוק, לעומת זאת, כרוך באימון מודלים בודדים ברצף, כאשר כל דגם מנסה לתקן את השגיאות שנעשו על ידי הדגמים הקודמים.
כעת, לאחר שיש לנו הקשר לגבי דגמי האנסמבל, הבה נקליק פעמיים על מודל האנסמבל המשפר, במיוחד האלגוריתם Light GBM (LGBM) שפותח על ידי מיקרוסופט.
LGBMClassifier ראשי תיבות של Light Gradient Boosting Machine Classifier. הוא משתמש באלגוריתמים של עץ החלטות עבור דירוג, סיווג ומשימות אחרות של לימוד מכונה. LGBMClassifier משתמש בטכניקה חדשה של דגימה חד-צדדית מבוססת Gradient (GOSS) ו-Exclusive Feature Bundling (EFB) כדי לטפל בנתונים בקנה מידה גדול בדיוק, מה שהופך אותם למהיר יותר ומצמצם את השימוש בזיכרון.
מהי דגימה חד-צדדית מבוססת גרדיאנט (GOSS)?
אלגוריתמים מסורתיים להגברת השיפוע משתמשים בכל הנתונים לצורך אימון, דבר שעלול לצרוך זמן רב בעת התמודדות עם מערכי נתונים גדולים. ה-GOSS של LightGBM, לעומת זאת, שומר על כל המופעים עם שיפועים גדולים ומבצע דגימה אקראית במופעים עם שיפועים קטנים. האינטואיציה מאחורי זה היא שקשה יותר להתאים מופעים עם שיפועים גדולים ולכן הם נושאים מידע נוסף. GOSS מציגה מכפיל קבוע עבור מופעי הנתונים עם שיפועים קטנים כדי לפצות על אובדן המידע במהלך הדגימה.
מהו צרור תכונות בלעדי (EFB)?
במערך נתונים דליל, רוב התכונות הן אפסים. EFB הוא אלגוריתם כמעט ללא הפסדים המאגד/משלב תכונות בלעדיות הדדית (תכונות שאינן אפס בו-זמנית) כדי להפחית את מספר הממדים, ובכך להאיץ את תהליך האימון. מכיוון שתכונות אלה הן "בלעדיות", שטח התכונות המקורי נשמר ללא אובדן מידע משמעותי.
ניתן להתקין את חבילת LightGBM ישירות באמצעות pip – מנהל החבילות של python. הקלד את הפקודה המשותפת למטה במסוף או בשורת הפקודה כדי להוריד ולהתקין את ספריית LightGBM על המחשב שלך:
pip install lightgbm
משתמשי אנקונדה יכולים להתקין אותו באמצעות הפקודה "conda install" כפי שמופיעה למטה.
conda install -c conda-forge lightgbm
בהתבסס על מערכת ההפעלה שלך, אתה יכול לבחור את שיטת ההתקנה באמצעות מדריך זה.
כעת, בואו לייבא את LightGBM וספריות נחוצות אחרות:
import numpy as np
import pandas as pd
import seaborn as sns
import lightgbm as lgb
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
הכנת מערך הנתונים
אנו משתמשים במערך הנתונים הפופולרי של Titanic, המכיל מידע על הנוסעים בטיטאניק, כאשר משתנה היעד מציין אם הם שרדו או לא. אתה יכול להוריד את מערך הנתונים מ קגל או השתמש בקוד הבא כדי לטעון אותו ישירות מ-Seaborn, כפי שמוצג להלן:
titanic = sns.load_dataset('titanic')
זרוק עמודות מיותרות כגון "סיפון", "עיר_עליון" ו"חי" מכיוון שהם מיותרים או לא תורמים להישרדותו של אף אדם על הספינה. לאחר מכן, ראינו שלמאפיינים "גיל", "תעריף" ו"עלייה לדרך" חסרים ערכים - שימו לב שמאפיינים שונים נזקפים למדדים סטטיסטיים מתאימים.
# Drop unnecessary columns
titanic = titanic.drop(['deck', 'embark_town', 'alive'], axis=1) # Replace missing values with the median or mode
titanic['age'] = titanic['age'].fillna(titanic['age'].median())
titanic['fare'] = titanic['fare'].fillna(titanic['fare'].mode()[0])
titanic['embarked'] = titanic['embarked'].fillna(titanic['embarked'].mode()[0])
לבסוף, אנו ממירים את המשתנים הקטגוריים למשתנים מספריים באמצעות הקודים הקטגוריים של הפנדות. כעת, הנתונים מוכנים להתחיל בתהליך אימון המודל.
# Convert categorical variables to numerical variables
titanic['sex'] = pd.Categorical(titanic['sex']).codes
titanic['embarked'] = pd.Categorical(titanic['embarked']).codes # Split the dataset into input features and the target variable
X = titanic.drop('survived', axis=1)
y = titanic['survived']
הכשרת מודל LGBMClassifier
כדי להתחיל לאמן את מודל LGBMClassifier, עלינו לפצל את מערך הנתונים לתכונות קלט ומשתני יעד, כמו גם מערכי אימון ובדיקות באמצעות הפונקציה train_test_split מ-sikit-learn.
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
הבה נקודד נתונים קטגוריים ("מי") ורדינליים ("מחלקה") כדי להבטיח שהדגם מסופק עם נתונים מספריים, שכן LGBM לא צורכת נתונים לא מספריים.
class_dict = { "Third": 3, "First": 1, "Second": 2
}
who_dict = { "child": 0, "woman": 1, "man": 2
}
X_train['class'] = X_train['class'].apply(lambda x: class_dict[x])
X_train['who'] = X_train['who'].apply(lambda x: who_dict[x])
X_test['class'] = X_test['class'].apply(lambda x: class_dict[x])
X_test['who'] = X_test['who'].apply(lambda x: who_dict[x])
לאחר מכן, אנו מציינים את הפרמטרים של המודל כארגומנטים לבנאי, או שנוכל להעביר אותם כמילון למתודה set_params.
השלב האחרון לתחילת אימון המודל הוא טעינת מערך הנתונים על ידי יצירת מופע של מחלקת LGBMClassifier והתאמתו לנתוני ההדרכה.
params = { 'objective': 'binary', 'boosting_type': 'gbdt', 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9
}
clf = lgb.LGBMClassifier(**params)
clf.fit(X_train, y_train)
לאחר מכן, הרשו לנו להעריך את הביצועים של המסווג המאומן במערך הנתונים הבלתי נראה או הבדיקה.
predictions = clf.predict(X_test)
print(classification_report(y_test, predictions))
precision recall f1-score support 0 0.84 0.89 0.86 105 1 0.82 0.76 0.79 74 accuracy 0.83 179 macro avg 0.83 0.82 0.82 179
weighted avg 0.83 0.83 0.83 179
כוונון היפר-פרמטר
ה-LGBMClassifier מאפשר גמישות רבה באמצעות היפרפרמטרים שתוכלו לכוונן לביצועים מיטביים. כאן, נדון בקצרה בכמה מפרמטרי ההיפר-פרמטרים העיקריים:
- מספר_עלים: זהו הפרמטר העיקרי לשליטה במורכבות מודל העץ. באופן אידיאלי, הערך של num_leaves צריך להיות קטן או שווה ל-2^(max_depth).
- min_data_in_leaf: זהו פרמטר חשוב למניעת התאמת יתר בעץ בעלים. הערך האופטימלי שלו תלוי במספר דגימות האימון ו-num_leaves.
- מקסימום עומק: אתה יכול להשתמש בזה כדי להגביל את עומק העץ באופן מפורש. עדיף לכוון את הפרמטר הזה במקרה של התאמה יתר.
בואו נכוון את ההיפרפרמטרים האלה ונאמן דגם חדש:
model = lgb.LGBMClassifier(num_leaves=31, min_data_in_leaf=20, max_depth=5)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(classification_report(y_test, predictions))
precision recall f1-score support 0 0.85 0.89 0.87 105 1 0.83 0.77 0.80 74 accuracy 0.84 179 macro avg 0.84 0.83 0.83 179
weighted avg 0.84 0.84 0.84 179
שים לב שכוונון בפועל של היפרפרמטרים הוא תהליך הכולל ניסוי וטעייה ועשוי להיות מונחה על ידי ניסיון והבנה מעמיקה יותר של האלגוריתם המגביר ומומחיות הנושא (ידע בתחום) של הבעיה העסקית עליה אתה עובד.
בפוסט זה למדת על אלגוריתם LightGBM והטמעת Python שלו. זוהי טכניקה גמישה ששימושית עבור סוגים שונים של בעיות סיווג וצריכה להיות חלק מערך הכלים שלך ללימוד מכונה.
וידי צ'וג הוא אסטרטג AI ומוביל טרנספורמציה דיגיטלית שעובד בצומת של מוצר, מדעים והנדסה לבניית מערכות למידת מכונה ניתנות להרחבה. היא מנהיגת חדשנות עטורת פרסים, סופרת ודוברת בינלאומית. היא במשימה לדמוקרטיזציה של למידת מכונה ולשבור את הז'רגון כדי שכולם יהיו חלק מהשינוי הזה.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. רכב / רכבים חשמליים, פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- BlockOffsets. מודרניזציה של בעלות על קיזוז סביבתי. גישה כאן.
- מקור: https://www.kdnuggets.com/2023/07/lgbmclassifier-gettingstarted-guide.html?utm_source=rss&utm_medium=rss&utm_campaign=lgbmclassifier-a-getting-started-guide
- :הוא
- :לֹא
- :איפה
- 1
- 10
- 11
- 13
- 14
- 31
- 7
- 77
- 8
- 80
- 84
- 87
- 9
- a
- אודות
- מאיצה
- דיוק
- ממשי
- נוסף
- מידע נוסף
- גיל
- - צבירה
- AI
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- מאפשר
- גם
- an
- ו
- כל
- מתאים
- APT
- ARE
- טיעונים
- AS
- At
- ניסיונות
- תכונות
- מחבר
- AVG
- עטורת פרסים
- BE
- כי
- להתחיל
- מאחור
- להלן
- הטוב ביותר
- חיזוק
- לשבור
- בקצרה
- לִבנוֹת
- עסקים
- by
- CAN
- לשאת
- מקרה
- ילד
- בחרו
- בכיתה
- מיון
- CLF
- קוד
- קודים
- עמודות
- שילוב
- מורכבות
- קבוע
- לצרוך
- מכיל
- הקשר
- לתרום
- לִשְׁלוֹט
- להמיר
- לתקן
- יוצרים
- נתונים
- מערכי נתונים
- התמודדות
- החלטה
- עץ החלטות
- עמוק יותר
- דמוקרטיזציה
- תלוי
- עומק
- מפותח
- אחר
- דיגיטלי
- טרנספורמציה דיגיטלית
- ממדים
- ישירות
- לדון
- do
- לא
- תחום
- להורדה
- ירידה
- בְּמַהֲלָך
- כל אחד
- יעילות
- או
- הנדסה
- לְהַבטִיחַ
- שווה
- שגיאה
- שגיאות
- להעריך
- כולם
- בלעדי
- ניסיון
- מומחיות
- מהר יותר
- מאפיין
- תכונות
- סופי
- ראשון
- מתאים
- הוֹלֵם
- גמישות
- גמיש
- הבא
- בעד
- החל מ-
- פונקציה
- מקבל
- שיפועים
- מדריך
- יד
- לטפל
- קשה
- יש
- כאן
- HTML
- HTTPS
- באופן אידיאלי
- הפעלה
- לייבא
- חשוב
- לשפר
- in
- לכלול
- בנפרד
- מידע
- ליזום
- חדשנות
- קלט
- להתקין
- התקנה
- למשל
- ברמה בינלאומית
- הִצטַלְבוּת
- אל תוך
- מציג
- אינטואיציה
- IT
- שֶׁלָה
- בז'רגון
- KDnuggets
- מפתח
- ידע
- ידוע
- תווית
- גָדוֹל
- בקנה מידה גדול
- אחרון
- מנהיג
- למד
- למידה
- פחות
- ספריות
- סִפְרִיָה
- אוֹר
- להגביל
- ברשימה
- לִטעוֹן
- את
- מכונה
- למידת מכונה
- מאקרו
- עשוי
- ראשי
- עשייה
- איש
- מנהל
- דבר
- מאי..
- אמצעים
- בינוני
- זכרון
- שיטה
- מדדים
- מיקרוסופט
- חסר
- משימה
- מצב
- מודל
- מודלים
- יותר
- רוב
- הרבה
- מספר
- הֲדָדִית
- הכרחי
- צורך
- חדש
- הבא
- רומן
- עַכשָׁיו
- מספר
- קהות
- מטרה
- שנצפה
- of
- on
- אופטימלי
- or
- מְקוֹרִי
- OS
- אחר
- אחרים
- ביצועים טובים יותר
- חבילה
- דובי פנדה
- פרמטר
- חלק
- לעבור
- ביצועים
- מבצע
- אדם
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- פופולרי
- הודעה
- דיוק
- נבואה
- התחזיות
- מוּכָן
- למנוע
- קודם
- בעיה
- בעיות
- תהליך
- לייצר
- המוצר
- מתן
- פיתון
- אקראי
- דירוג
- RE
- להפחית
- הפחתה
- להחליף
- s
- להרחבה
- מדעים
- סקיקיט-לימוד
- ים ים
- שְׁנִיָה
- סט
- סטים
- מִין
- משותף
- היא
- צריך
- הראה
- משמעותי
- בו זמנית
- since
- קטן
- כמה
- מֶרחָב
- רַמקוֹל
- ספציפי
- במיוחד
- לפצל
- עומד
- התחלה
- החל
- סטטיסטי
- שלב
- תַכסִיסָן
- נושא
- כזה
- שסופק
- תמיכה
- הישרדות
- שרד
- מערכות
- יעד
- משימות
- טכניקות
- מסוף
- מבחן
- בדיקות
- מֵאֲשֶׁר
- זֶה
- השמיים
- המידע
- שֶׁלָהֶם
- אותם
- אז
- שם.
- בכך
- אלה
- הֵם
- שְׁלִישִׁי
- זֶה
- כָּך
- דורש זמן רב
- ל
- ארגז כלים
- רכבת
- מְאוּמָן
- הדרכה
- רכבות
- טרנספורמציה
- עץ
- מִשׁפָּט
- ניסוי וטעייה
- שתיים
- סוג
- סוגים
- הבנה
- us
- נוֹהָג
- להשתמש
- משתמשים
- שימושים
- באמצעות
- לנצל
- ערך
- ערכים
- שונים
- Vast
- באמצעות
- we
- טוֹב
- מתי
- אם
- אשר
- בזמן
- מי
- יצטרך
- עם
- לְלֹא
- אשה
- עובד
- X
- אתה
- זפירנט