تصویر توسط ویرایشگر
تعداد زیادی الگوریتم یادگیری ماشینی وجود دارد که برای مدلسازی پدیدههای خاص مناسب هستند. در حالی که برخی از مدلها از مجموعهای از ویژگیها برای عملکرد بهتر از سایرین استفاده میکنند، برخی دیگر شامل یادگیرندگان ضعیفی میشوند تا از بقیه ویژگیها برای ارائه اطلاعات اضافی به مدل استفاده کنند که به عنوان مدلهای گروهی شناخته میشوند.
فرض مدلهای گروهی بهبود عملکرد مدل با ترکیب پیشبینیهای مدلهای مختلف با کاهش خطاهای آنهاست. دو روش محبوب ترکیبی وجود دارد: کیسه زدن و تقویت.
Bagging، با نام مستعار Bootstrapped Aggregation، چندین مدل فردی را بر روی زیرمجموعههای تصادفی مختلف دادههای آموزشی آموزش میدهد و سپس پیشبینیهای آنها را میانگین میدهد تا پیشبینی نهایی را ایجاد کند. از سوی دیگر، تقویت شامل آموزش مدل های فردی به صورت متوالی است، جایی که هر مدل تلاش می کند تا خطاهای مدل های قبلی را اصلاح کند.
اکنون که زمینهای در مورد مدلهای گروه داریم، اجازه دهید بر روی مدل گروه تقویتکننده، بهویژه الگوریتم Light GBM (LGBM) توسعهیافته توسط مایکروسافت دوبار کلیک کنیم.
LGBMClassifier مخفف Light Gradient Boosting Machine Classifier است. از الگوریتم های درخت تصمیم برای رتبه بندی، طبقه بندی و سایر وظایف یادگیری ماشینی استفاده می کند. LGBMClassifier از تکنیک جدیدی از نمونهبرداری یک طرفه مبتنی بر گرادیان (GOSS) و دستهبندی ویژگیهای انحصاری (EFB) برای مدیریت دادههای مقیاس بزرگ با دقت استفاده میکند و به طور مؤثر آن را سریعتر و استفاده از حافظه را کاهش میدهد.
نمونه برداری یک طرفه مبتنی بر گرادیان (GOSS) چیست؟
الگوریتمهای سنتی تقویت گرادیان از تمام دادهها برای آموزش استفاده میکنند، که میتواند هنگام برخورد با مجموعه دادههای بزرگ زمانبر باشد. از طرف دیگر، GOSS LightGBM، تمام نمونهها را با گرادیانهای بزرگ نگه میدارد و نمونهبرداری تصادفی را روی نمونههایی با گرادیانهای کوچک انجام میدهد. شهود پشت این امر این است که نمونههایی با گرادیانهای بزرگ به سختی جا میشوند و بنابراین اطلاعات بیشتری را حمل میکنند. GOSS یک ضریب ثابت برای نمونه های داده با گرادیان های کوچک معرفی می کند تا از دست رفتن اطلاعات در طول نمونه برداری را جبران کند.
بستهبندی ویژگی انحصاری (EFB) چیست؟
در یک مجموعه داده پراکنده، بیشتر ویژگی ها صفر هستند. EFB یک الگوریتم تقریباً بدون ضرر است که ویژگی های منحصر به فرد متقابل (ویژگی هایی که به طور همزمان غیر صفر نیستند) را برای کاهش تعداد ابعاد و در نتیجه روند آموزش تسریع می کند. از آنجایی که این ویژگیها «انحصاری» هستند، فضای ویژگی اصلی بدون از دست دادن اطلاعات قابل توجه حفظ میشود.
بسته LightGBM را می توان مستقیماً با استفاده از مدیر بسته pip – python نصب کرد. برای دانلود و نصب کتابخانه LightGBM بر روی دستگاه خود، دستور به اشتراک گذاشته شده در زیر را در ترمینال یا خط فرمان تایپ کنید:
pip install lightgbm
کاربران Anaconda می توانند آن را با استفاده از دستور "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
آماده سازی مجموعه داده
ما از مجموعه داده محبوب تایتانیک استفاده می کنیم که حاوی اطلاعاتی در مورد مسافران تایتانیک است و متغیر هدف نشان می دهد که آیا آنها زنده مانده اند یا نه. می توانید مجموعه داده را از اینجا دانلود کنید کجگل یا از کد زیر برای بارگذاری مستقیم آن از Seaborn استفاده کنید، همانطور که در زیر نشان داده شده است:
titanic = sns.load_dataset('titanic')
ستون های غیر ضروری مانند "عرشه"، "embark_town" و "live" را رها کنید زیرا اضافی هستند یا به بقای هیچ فردی در کشتی کمک نمی کنند. در مرحله بعد، مشاهده کردیم که ویژگیهای «سن»، «کرایه» و «سفارش» دارای مقادیر گم شدهاند – توجه داشته باشید که ویژگیهای مختلف با معیارهای آماری مناسب نسبت داده میشوند.
# 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 از scikit-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)
بیایید دادههای دستهبندی ("who") و ترتیبی ("کلاس") را رمزگذاری کنیم تا مطمئن شویم که مدل با دادههای عددی عرضه میشود، زیرا 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 آن آشنا شدید. این یک تکنیک انعطاف پذیر است که برای انواع مختلف مشکلات طبقه بندی مفید است و باید بخشی از جعبه ابزار یادگیری ماشین شما باشد.
ویدی چوغ یک استراتژیست هوش مصنوعی و یک رهبر تحول دیجیتال است که در تقاطع محصولات، علوم و مهندسی کار می کند تا سیستم های یادگیری ماشینی مقیاس پذیر را بسازد. او یک رهبر نوآوری برنده جایزه، نویسنده و سخنران بین المللی است. او در ماموریتی است که یادگیری ماشینی را دموکراتیزه کند و این اصطلاح را بشکند تا همه بخشی از این تحول باشند.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. خودرو / خودروهای الکتریکی، کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- 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
- هستند
- استدلال
- AS
- At
- تلاشها
- خواص
- نویسنده
- AVG
- برنده جایزه
- BE
- زیرا
- شروع
- پشت سر
- در زیر
- بهترین
- تقویت
- شکستن
- بطور خلاصه
- ساختن
- کسب و کار
- by
- CAN
- حمل
- مورد
- کودک
- را انتخاب کنید
- کلاس
- طبقه بندی
- CLF
- رمز
- کد
- ستون ها
- ترکیب
- پیچیدگی
- ثابت
- مصرف
- شامل
- زمینه
- کمک
- کنترل
- تبدیل
- اصلاح
- ایجاد
- داده ها
- مجموعه داده ها
- معامله
- تصمیم
- درخت تصمیم
- عمیق تر
- دموکراتیک کردن
- بستگی دارد
- عمق
- توسعه
- مختلف
- دیجیتال
- دگرگونی های دیجیتال
- ابعاد
- مستقیما
- بحث و تبادل نظر
- do
- نمی کند
- دامنه
- دانلود
- قطره
- در طی
- هر
- به طور موثر
- هر دو
- مهندسی
- اطمینان حاصل شود
- برابر
- خطا
- خطاهای
- ارزیابی
- هر کس
- انحصاری
- تجربه
- تخصص
- سریعتر
- ویژگی
- امکانات
- نهایی
- نام خانوادگی
- مناسب
- مناسب
- انعطاف پذیری
- قابل انعطاف
- پیروی
- برای
- از جانب
- تابع
- گرفتن
- شیب ها
- راهنمایی
- دست
- دسته
- سخت تر
- آیا
- اینجا کلیک نمایید
- HTML
- HTTPS
- ایده آل
- پیاده سازی
- واردات
- مهم
- بهبود
- in
- شامل
- فرد
- اطلاعات
- وارد کردن
- ابداع
- ورودی
- نصب
- نصب و راه اندازی
- نمونه
- بین المللی
- تقاطع
- به
- معرفی می کند
- شهود
- IT
- ITS
- اصطلاحات مخصوص یک صنف
- kdnuggets
- کلید
- دانش
- شناخته شده
- برچسب
- بزرگ
- در مقیاس بزرگ
- نام
- رهبر
- آموخته
- یادگیری
- کمتر
- کتابخانه ها
- کتابخانه
- سبک
- محدود
- ذکر شده
- بار
- خاموش
- دستگاه
- فراگیری ماشین
- درشت دستور
- ساخته
- اصلی
- ساخت
- مرد
- مدیر
- ماده
- ممکن است..
- معیارهای
- متوسط
- حافظه
- روش
- متریک
- مایکروسافت
- گم
- ماموریت
- حالت
- مدل
- مدل
- بیش
- اکثر
- بسیار
- چندگانه
- متقابلا
- لازم
- نیاز
- جدید
- بعد
- رمان
- اکنون
- عدد
- بی حس
- هدف
- مشاهده
- of
- on
- بهینه
- or
- اصلی
- OS
- دیگر
- دیگران
- بهتر از
- بسته
- پانداها
- پارامتر
- بخش
- عبور
- کارایی
- انجام می دهد
- شخص
- افلاطون
- هوش داده افلاطون
- PlatoData
- محبوب
- پست
- دقت
- پیش گویی
- پیش بینی
- آماده شده
- جلوگیری از
- قبلی
- مشکل
- مشکلات
- روند
- تولید کردن
- محصول
- ارائه
- پــایتــون
- تصادفی
- رتبه بندی
- RE
- كاهش دادن
- کاهش
- جایگزین کردن
- s
- مقیاس پذیر
- علوم
- یادگیری
- متولد دریا
- دوم
- تنظیم
- مجموعه
- ارتباط جنسی
- به اشتراک گذاشته شده
- او
- باید
- نشان داده شده
- قابل توجه
- به طور همزمان
- پس از
- کوچک
- برخی از
- فضا
- گوینده
- خاص
- به طور خاص
- انشعاب
- می ایستد
- شروع
- آغاز شده
- آماری
- گام
- رزمارا
- موضوع
- چنین
- عرضه شده است
- پشتیبانی
- بقاء
- زنده ماند
- سیستم های
- هدف
- وظایف
- تکنیک
- پایانه
- آزمون
- تست
- نسبت به
- که
- La
- اطلاعات
- شان
- آنها
- سپس
- آنجا.
- در نتیجه
- اینها
- آنها
- سوم
- این
- بدین ترتیب
- زمان بر
- به
- ابزار
- قطار
- آموزش دیده
- آموزش
- قطار
- دگرگونی
- درخت
- محاکمه
- ازمایش و خطا
- دو
- نوع
- انواع
- درک
- us
- استفاده
- استفاده کنید
- کاربران
- استفاده
- با استفاده از
- استفاده کنید
- ارزش
- ارزشها
- مختلف
- وسیع
- از طريق
- we
- خوب
- چه زمانی
- چه
- که
- در حین
- WHO
- اراده
- با
- بدون
- زن
- کارگر
- X
- شما
- شما
- زفیرنت