آموزش دیتاساینس و ماشین‌لرنینگ
1.89K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
👩‍🎓 برنامه آموزشی هفته: الگوریتم Xgboost

🟠شنبه: مقایسه Bagging و Boosting و Stacking

🔵یک‌شنبه: استفاده از Gradient در Xgboost

🟢دوشنبه: Xgboost در رگرسیون و طبقه‌بندی

🔴سه‌شنبه: کد Xgboost از پایه (Scratch)

🟠چهارشنبه: پکیج پایتونی Xgboost

🔵پنج‌شنبه: مقایسه Xgboost و Random Forest

🟢جمعه: جمع بندی

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
8👌2🔥1
👨‍🎓 مقایسه Bagging و Boosting و Stacking

یادگیری ترکیبی (Ensemble Learning)، که به نام تجمیعی هم شناخته می‌شه، رویکردی در یادگیری ماشینه که در اون مدل‌های مختلف برای حل یک مسئله خاص ترکیب می‌شن. هدف اینکه با ترکیب کردن تعدادی از مدل‌ها، یک مدل نهایی قوی‌تر، دقیق‌تر و قابل اعتمادتر از هر مدل انفرادی به دست بیاد. این رویکرد بر این فرض هست که ترکیب چند مدل می‌تونه نویز، واریانس و bias رو کاهش بده.

🔵 روش Bagging یا Bootstrap Aggregating، به کاهش واریانس و جلوگیری از overfitting کمک می‌کنه. این روش با تولید چند نسخه از مجموعه داده اصلی و آموزش مستقل هر مدل روی این نمونه‌ها کار می‌کنه.

بعد با استفاده از روش‌هایی مثل رای‌گیری یا میانگین‌گیری، نتیجه نهایی به دست میاد. یک مثال معروف از Bagging، مدل Random Forest هست که در تشخیص بیماری‌ها یا تحلیل ریسک مالی کاربرد داره.

🔵 روش Boosting فرایندی تکراریه که در اون مدل‌های جدید به صورت متوالی آموزش داده می‌شن و هر مدل جدید تلاش می‌کنه تا خطاهای مدل‌های قبلی رو جبران کنه. این روش روی کاهش bias تمرکز داره و نسبت به نویز و داده‌های پرت حساسه.

همچنین از تکنیک‌هایی مثل AdaBoost و Gradient Boosting استفاده می‌کنه. XGBoost یکی از پیاده‌سازی‌های محبوب Boosting هست که با استفاده از تکنیک‌هایی مثل gradient descent، عملکرد خودش رو بهینه می‌کنه.

🔵 روش Stacking یا Stacked Generalization، مدل‌های مختلف رو ترکیب و پیش‌بینی‌هاشون رو به عنوان ورودی به یک مدل meta یا متا-یادگیرنده می‌ده که پیش‌بینی نهایی رو انجام بده.

روش Stacking معمولاً در وظایف طبقه‌بندی از logistic regression و در وظایف رگرسیونی از linear regression به عنوان متا-یادگیرنده استفاده می‌کنه، چون این مدل‌ها توانایی خوبی در ترکیب پیش‌بینی‌های مدل‌های پایه دارن و می‌تونن نتایج نهایی رو بر اساس وزن‌دهی به پیش‌بینی‌های مختلف بهینه‌سازی کنن.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
کوئیز شماره ۶۷: کدوم تکنیک‌ زیر در پیاده‌سازی XGBoost برای کاهش overfitting به کار می‌ره؟
Anonymous Quiz
18%
تقویت داده‌های پرت
18%
کاهش سرعت یادگیری
38%
افزایش تعداد یادگیرنده‌های ضعیف
27%
هیچکدام
👌8😎21🔥1
👨‍🎓 با اینکه یادگیری گروهی در اکثر اوقات نتایج بهتری می‌ده، چرا همیشه ازش استفاده نمیشه؟

روش‌های یادگیری گروهی با وجود افزایش دقت به منابع محاسباتی و هزینه‌های بیشتری نیاز دارن و گاهی پیچیدگی برای تفسیر و تحلیل ایجاد می‌کنن.

همچنین در صورتی که داده‌ها ناکافی یا پرنویز باشن، عملکرد پیش‌بینی‌ رو مختل می‌کنن و در مواقعی که زمان محدوده یا داده‌ها ساده‌ هستن، روش‌های سریع‌تر یا ساده‌تر ترجیح داده می‌شن.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
6👌4👍3
👨‍🎓 استفاده از Gradient در Xgboost

الگوریتم XGBoost (eXtreme Gradient Boosting) یکی از الگوریتم‌های محبوب یادگیری ماشینه که برای حل مسائل طبقه‌بندی و رگرسیون استفاده می‌شه. این الگوریتم بر پایه‌ی تقویت گرادیان (Gradient Boosting) کار می‌کنه و توانایی بالایی در برخورد با داده‌های بزرگ و پیچیده داره.

🔵 تقویت گرادیان چیه؟

تقویت گرادیان یک تکنیک یادگیری ماشینه که به صورت تکراری، مدل‌های ساده (معمولا درختان تصمیم) رو ترکیب می‌کنه تا یک مدل پیچیده‌تر و دقیق‌تر به دست بیاره. در هر مرحله، مدل جدید روی خطاهای مدل‌های قبلی ساخته می‌شه.

🔵 گرادیان در XGBoost

در XGBoost، گرادیان نقش مهمی داره. هر مرحله در تقویت گرادیان، مدل رو بر اساس مشتق تابع هزینه نسبت به پیش‌بینی‌های فعلی به‌روز می‌کنه. این مشتق، گرادیان نام داره و نشون‌دهنده مراجلی هست که باید برای بهینه‌سازی مدل برداشته شه.

🔵 جزئیات گرادیان در XGBoost

🔵الگوریتم XGBoost برای هر نمونه در داده‌ها، گرادیان تابع هزینه رو محاسبه می‌کنه. این گرادیان‌ها نشون‌دهنده خطاهای نمونه‌ها هستن و میزان تغییر لازم برای پیش‌بینی‌ها رو مشخص می‌کنن.

🔵در هر دور از یادگیری، XGBoost یک درخت جدید می‌سازه که هدفش کاهش مجموع گرادیان‌های تابع هزینه است. این کار باعث می‌شه که پیش‌بینی‌های مدل دقیق‌تر شن.

🔵تنظیم دقیق پارامترهای XGBoost می‌تونن روی تأثیر گرادیان‌ها در یادگیری مدل اثر گذار باشن. پارامترهایی مثل نرخ یادگیری (learning rate) و عمق درخت (max_depth) روی سرعت و جهت حرکت گرادیان‌ها تأثیر دارن.

🔵همچنین XGBoost از تکنیک‌های پیشرفته برای کار با داده‌های پراکنده و مقیاس بزرگ استفاده می‌کنه. این تکنیک‌ها به کارایی الگوریتم در محاسبه گرادیان‌ها و ساخت درخت‌های تصمیم کمک می‌کنند.
#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👌2👨‍💻1
کوئیز شماره ۶۸:در XGBoost، مدل‌ها به صورت افزایشی آموزش داده می‌شن یعنی هر درخت به تدریج به مجموعه اضافه می‌شه. در این فرآیند، هدف اصلی چیه؟
Anonymous Quiz
10%
کاهش زمان آموزش برای هر درخت
45%
افزایش دقت پیش‌بینی‌ها در هر مرحله
35%
اضافه کردن درختی که بهینه‌ترین کاهش رو در تابع هدف ارائه می‌ده
10%
ایجاد تنوع در مدل‌ها برای کاهش بیش‌برازش
👍5😎41🤔1
💡بعضی از کاربردهای Ensemble Learning در دنیای واقعی چیه؟

یادگیری گروهی در زمینه‌های مختلفی مثل تشخیص بیماری‌ها در پزشکی، پیش‌بینی قیمت‌ها در بازارهای مالی، بهبود سیستم‌های توصیه‌گر مثل در نتفلیکس و آمازون، و پیش‌بینی دقیق‌تر شرایط آب و هوایی به کار می‌روه. این تکنیک‌ها به دلیل توانایی در ترکیب داده‌ها و پیش‌بینی‌ها از چندین مدل مختلف، به افزایش دقت نهایی کمک می‌کنن.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1
👨‍🎓 الگوریتم Xgboost در رگرسیون و طبقه‌بندی

الگوریتم XGBoost در زمینه‌های مختلفی مسائل رگرسیون (پیش‌بینی مقادیر عددی) و طبقه‌بندی (مشخص کردن طبقه‌بندی‌) کاربرد داره.

🔵 استفاده از XGBoost برای Regression

برای رگرسیون، XGBoost با استفاده از مجموعه‌ای از درخت‌های تصمیم به ساخت یک مدل قوی می‌پردازه که بتونه الگوهای پیچیده‌ای رو در داده‌ها تشخیص بده.

🔵تنظیم پارامترها: برای بهینه‌سازی عملکرد XGBoost در رگرسیون، پارامترهایی مثل max_depth (عمق حداکثری درخت)، learning_rate (نرخ یادگیری)، و n_estimators (تعداد درختان) باید با دقت تنظیم شن.

🔵تابع هزینه: تابع هزینه‌ای که معمولا برای مسائل رگرسیون استفاده می‌شه، MSE (میانگین مربعات خطا) یا RMSE (ریشه میانگین مربعات خطا) هست.

🔵بررسی اهمیت ویژگی‌ها: XGBoost قابلیت ارائه اطلاعات در مورد اهمیت ویژگی‌ها در مدل رو داره، که برای تحلیل داده‌ها و بهینه‌سازی مدل کمک‌کننده است.

🔵 استفاده از XGBoost برای Classification

در طبقه‌بندی، هدف تشخیص دسته یا کلاسیه که نمونه‌ بهش تعلق داره. XGBoost برای حل مسائل طبقه‌بندی دو کلاسه و چند کلاسی کاربرد داره.

🔵تنظیم پارامترها: مثل رگرسیون، تنظیم پارامترهای max_depth ، learning_rate، و n_estimators بسیار مهمه. علاوه بر این، objective باید به درستی تنظیم شه (مثلا binary:logistic برای طبقه‌بندی باینری).

🔵تابع هزینه: برای طبقه‌بندی، تابع هزینه‌ شامل Log Loss برای طبقه‌بندی باینری یا Cross Entropy برای مسائل چند کلاسی هستن.

🔵کار با داده‌های نامتوازن: در مسائل طبقه‌بندی‌ای که داده‌ها نامتوازن هستن، XGBoost امکاناتی مثل وزن‌دهی به کلاس‌ها رو برای بهبود عملکرد مدل ارائه می‌ده.

در استفاده از XGBoost برای رگرسیون یا طبقه‌بندی، درک دقیق داده‌ها، پیش‌پردازش مناسب داده‌ها، و تنظیم دقیق پارامترها اهمیت بالایی داره. همچنین، استفاده از تکنیک‌ Cross-Validation برای ارزیابی مدل و جلوگیری از بیش‌برازش در بهبود عملکرد مدل مؤثره.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌32
کوئیز شماره ۶۹: اگه قرار باشه از XGBoost برای مسئله طبقه‌بندی با داده‌های نامتوازن استفاده شه؛ کدوم یک از پارامترهای زیر رو باید برای این هدف تنظیم کرد تا مدل بهترین عملکرد رو داشته باشه؟
Anonymous Quiz
29%
max_depth
26%
learning_rate
32%
scale_pos_weight
12%
colsample_bytree
😎7👍21👌1
💡معنی پارامتر گاما (gamma) در XGBoost چیه؟

گاما یک پارامتر در XGBoost هست که کنترل می‌کنه هر درخت چقدر در خروجی نهایی تاثیر گذار باشه. مقدار بالاتر گاما به این معنی هست که هر درخت تأثیر بیشتری روی خروجی نهایی داره.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3👌3
👨‍🎓 پیاده سازی Xgboost از پایه (Scratch)

برای پیاده‌سازی XGBoost از پایه در پایتون، باید مراحل زیر دنبال شن. XGBoost یک الگوریتم یادگیری ماشینه که بر اساس تقویت گرادیان کار می‌کنه.

🔵 ساختار درخت تصمیم: در مرحله اول نیاز داریم که یک ساختار برای درخت تصمیم ایجاد کنیم. XGBoost از درخت‌های تصمیم به عنوان پایه استفاده می‌کنه.

class Node:
def __init__(self, feature_index=None, threshold=None, left=None, right=None, *, value=None):
self.feature_index = feature_index
self.threshold = threshold
self.left = left
self.right = right
self.value = value


کلاس Node برای مدل‌سازی هر کدوم از گره‌های موجود در درخت تصمیم به کار می‌ره. در این ساختار، گره‌هایی که در انتهای شاخه‌ها قرار دارن و به عنوان برگ‌های درخت شناخته می‌شن، دارای یک مقدار مشخص (value) هستن. این در حالیه که بقیه گره‌ها، که وظیفه تقسیم داده‌ها رو دارن، دو ویژگی مهم دارن: شاخص ویژگی (feature_index) و آستانه تقسیم‌بندی (threshold). این دو مورد در تعیین نحوه جداسازی داده‌ها در هر گره غیر برگی نقش دارن.

🔵 تابع آموزش و پیش‌بینی: برای هر درخت، باید توانایی آموزش به داده‌ها و انجام پیش‌بینی‌ها وجود داشته باشه.

class DecisionTree:
def __init__(self, max_depth):
self.max_depth = max_depth
self.root = None

def fit(self, X, y):
pass

def predict(self, X):
pass


🔵 تابع هزینه و گرادیان: برای بروزرسانی مدل در هر تکرار، باید تابع هزینه و گرادیان‌هاش رو محاسبه کنیم. در XGBoost از تابع هزینه MSE برای مسائل رگرسیون استفاده می‌شه.

def mse(y_true, y_pred):
return np.mean((y_true - y_pred) ** 2)

def mse_grad(y_true, y_pred):
return -2 * (y_true - y_pred) / len(y_true)


🔵 تقویت گرادیان: در این کلاس، مدل XGBoost با اضافه کردن درخت‌های جدید برای کاهش گرادیان تابع هزینه پیاده‌سازی میشه.

class XGBoost:
def __init__(self, n_estimators=100, max_depth=3, learning_rate=0.1):
self.n_estimators = n_estimators
self.max_depth = max_depth
self

.learning_rate = learning_rate
self.trees = []

def fit(self, X, y):
y_pred = np.zeros(len(y))
for _ in range(self.n_estimators):
tree = DecisionTree(max_depth=self.max_depth) #Calculation of gradients

grad = mse_grad(y, y_pred)
tree.fit(X, grad)

y_pred += self.learning_rate * tree.predict(X) #Update predicts
self.trees.append(tree)

def predict(self, X):
y_pred = np.zeros(len(X))
for tree in self.trees:
y_pred += self.learning_rate * tree.predict(X)
return y_pred


این کد فقط مهم‌ترین کلاس‌ها و توابع پیاده سازی XGBoost از Scratch هست و برای اجرا و نتیجه گرفتن ازش نیاز به بهبودهای بیشتری داره و باید توابع آموزش درخت رو تکمیل کرد. همچنین، می‌تونیم ویژگی‌هایی مثل تعداد برگ‌ها، نرخ یادگیری و بقیه پارامترهای تنظیم مدل رو اضافه کنیم.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥1
🧑‍🎓 آشنایی با الگوریتم XGBoost

الگوریتم XGBoost یک الگوریتم یادگیری باناظره به‌خاطر قابلیت‌هاش در تنظیم خودکار، سرعت بالا در آموزش و قدرت پیش‌بینی‌اش، به‌عنوان یکی از قدرتمندترین و مؤثرترین ابزارها در حوزه یادگیری ماشین شناخته می‌شه و کاربردهای فراوانی داره.

🟢برای مطالعه کلیک کنین:
👉📎 ctdrs.ir/ds0224

#Machine_Learning
#Xgboost

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👌2
👨‍🎓 پکیج پایتونی Xgboost

پکیج پایتون برای XGBoost که به دلیل سرعت و دقت بالا شهرت داره، برای حل مسائل طبقه‌بندی، رگرسیون و رتبه‌بندی به کار می‌ره.

۱. نصب و وارد کردن پکیج XGBoost: در مرحله اول باید کتابخانه XGBoost رو نصب کرد. این کار با استفاده از pip انجام میشه.

pip install xgboost


بعد از نصب، به این صورت وارد میشه:

import xgboost as xgb


۲. آماده‌سازی داده‌ها: داده‌ها باید به فرمت DMatrix تبدیل شن که فرمت داده‌ای اختصاصی XGBoost هست و برای بهینه‌سازی عملکرد طراحی شده.

train = xgb.DMatrix(X_train, label=y_train)
test = xgb.DMatrix(X_test, label=y_test)


۳. تنظیم پارامترها: پارامترهای XGBoost رو میشه به سه دسته کلی تقسیم کرد: پارامترهای عمومی، پارامترهای بوستر و پارامترهای مربوط به وظایف خاص.

params = {
'max_depth': 3,
'eta': 0.1,
'objective': 'binary:logistic',
'eval_metric': 'auc'
}
num_round = 100


🔵پارامترهای عمومی: تنظیمات کلی الگوریتم رو مشخص و روی همه جنبه‌های آموزش تأثیر می‌گذارن.

- نوع مدلی که استفاده میشه رو booster مشخص می‌کنه. می‌تونه gbtree (درخت تصمیم‌گیری), gblinear یا dart باشه.
- تعداد رشته‌های CPU برای اجرای XGBoost توسط nthread مشخص میشه. اگه با None تنظیم شه، XGBoost تعداد رشته‌های موجود رو خودش تعیین می‌کته.

🔵پارامترهای بوستر: ویژگی‌های مدل رو کنترل می‌کنن و روی دقت و سرعت آموزش تأثیر می‌گذارن.

- نرخ یادگیری توسط eta مشخص میشه. مقدار کمش باعث می‌شه مدل به آرومی یاد بگیره.
- حداکثر عمق هر درخت با max_depth مشخص میشه و افزایش این مقدار مدل رو پیچیده‌تر و قادر به یادگیری الگوهای دقیق‌تر می‌کنه.
- حداقل وزن مورد نیاز برای یک فرزند توسط min_child_weight مشخص میشه. مقادیر بزرگ‌تر برای این پارامتر باعث کنترل بیش‌برازش میشن.

🔵پارامترهای مربوط به وظایف خاص:برای وظایف خاص یادگیری ماشین مثل دسته‌بندی یا رگرسیون تنظیم می‌شن.

- تابع هدف یا خطایی که باید بهینه‌سازی شه با objective مشخص میشه. مثلا binary:logistic برای طبقه‌بندی دو کلاسه کاربرد داره.
- معیار ارزیابی برای مجموعه داده‌های اعتبارسنجی eval_metric هست. مثلا auc برای منطقه زیر منحنی ROC.

۴. آموزش و ارزیابی مدل: مدل با استفاده از داده‌های آموزشی و پارامترهای تعیین‌شده آموزش داده می‌شه و با استفاده از داده‌های تست عملکردش ارزیابی می‌شه.

bst = xgb.train(params, train, num_round)
preds = bst.predict(test)


۵. تنظیم دقیق مدل (Fine-tuning): XGBoost از روش‌هایی مثل cross-validation برای تنظیم دقیق پارامترها و جلوگیری از بیش‌برازش پشتیبانی می‌کنه.

cv_results = xgb.cv(params, train, num_boost_round=100, nfold=3, metrics={'auc'}, early_stopping_rounds=10)


🔵 بررسی یک نمونه کد کامل برای درک بهتر

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import accuracy_score

data = load_breast_cancer()
X, y = data.data, data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

train = xgb.DMatrix(X_train, label=y_train)
test = xgb.DMatrix(X_test, label=y_test)

params = {
'max_depth': 3,
'eta': 0.1,
'objective': 'binary:logistic',
'eval_metric': 'auc'
}
num_round = 100

bst = xgb.train(params, train, num_round)

preds = bst.predict(test)
predictions = [1 if value > 0.5 else 0 for value in preds]

accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100.0}%")

🔜Accuracy: 95.61%

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63👌2
💡تفاوت بین GBM و XGBoost

یک رویکرد عمومی تقویت گرادیان، الگوریتم (Gradient Boosting Machines) GBM هست که می‌تونه برای انواع کاربردها استفاده شه اما XGBoost یک پیاده‌سازی خاص از GBM هست.

🔵سرعت: XGBoost به دلیل استفاده از تکنیک‌هایی مثل تقسیم سریع درخت و جستجوی موازی به طور قابل‌توجهی‌ای سریع‌تر از GBM سنتیه.

🔵عملکرد: XGBoost به دلیل استفاده از تکنیک‌های منظم‌سازی و جستجوی دقیق‌تر فضای پارامتر GBM دقیق‌تره.

🔵قابلیت استفاده: XGBoost به دلیل وجود پارامترهای بیشتر و تکنیک‌های تنظیم پیچیده‌تر از GBM هست.

🔵موارد استفاده: GBM و XGBoost برای مسائل مختلف طبقه‌بندی، رگرسیون، رتبه‌بندی و یادگیری تقویتی به کار می‌رن. XGBoost به طور خاص برای مسائل رگرسیون با حجم داده بالا مناسبه.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌4👍32
👨‍🎓 مقایسه Xgboost و Random Forest

🔵 دقت (Accuracy)

🔵جنگل تصادفی در بسیاری از موارد دقت بالایی داره. این الگوریتم با ایجاد تعداد زیادی درخت و ترکیب نتایج از overfitting جلوگیری می‌کنه.

🔵الگوریتم XGBoost معمولا دقت بسیار بالایی داره؛ به‌خصوص در مجموعه داده‌هایی که پیچیده هستن و تعداد ویژگی زیادی دارن. روش‌های تنظیم دقیق پارامتر در XGBoost به بهبود عملکرد مدل کمک می‌کنن.

🔵 سرعت و کارایی

🔵جنگل تصادفی می‌تونه با استفاده از چندین هسته CPU به صورت موازی اجرا شه، اما در مقایسه با XGBoost کمی کنده.

🔵یکی از بزرگترین مزیت‌های XGBoost، سرعت زیادشه. XGBoost برای استفاده از منابع سخت‌افزاری بهینه شده و می‌تونه روی هسته‌های CPU و حتی GPU به صورت موازی اجرا شه.

🔵 مدیریت داده‌های گمشده (Missing Values)

🔵جنگل تصادفی می‌تونه به طور موثر با داده‌های گمشده کنار بیاد، اما نیاز به اعمال روش‌های پیش‌پردازش داده برای بهبود عملکرد داره.

🔵الگوریتم XGBoost دارای قابلیت‌های پیشرفته برای مدیریت داده‌های گمشده است و داده‌های گمشده رو به صورت داخلی (بدون نیاز به پیش‌پردازش) مدیریت می‌کنه.

🔵 تنظیم پارامتر (Parameter Tuning)

🔵جنگل تصادفی دارای پارامترهای کمتری برای تنظیمه و به طور کلی، تنظیم پارامتر در Random Forest ساده‌تره.

🔵الگوریتم XGBoost دارای تعداد زیادی پارامتره که تنظیم میشن و به بهبود عملکردش کمک می‌کنن. اما تنظیم این پارامترها ممکنه زمان‌بر و پیچیده باشه.

🔵 مقیاس‌پذیری و استفاده از منابع

🔵جنگل تصادفی به طور معمول مقیاس‌پذیره اما با افزایش حجم داده، حافظه بیشتری مصرف می‌کنه.

🔵الگوریتم XGBoost برای مقیاس‌پذیری طراحی شده و می‌تونه با کارایی بالا در مجموعه داده‌های بزرگ اجرا شه. همچنین، روش‌هایی برای کاهش مصرف حافظه داره.

🔵 قابلیت تفسیرپذیری (Interpretability)

🔵در جنگل تصادفی گاهی تفسیر نتایج به دلیل تعداد زیاد درختان تصمیم چالش‌برانگیزه.

🔵در XGBoost امکان ارائه ویژگی‌های مهم تفسیرپذیری مدل‌ رو نسبتاً ساده‌تر می‌کنه.

🔵 پیچیدگی زمانی (Big O)

🔵پیچیدگی زمانی Random Forest به تعداد درختان (n_estimators) و تعداد ویژگی‌ها (features) بستگی داره و به صورت O(N * M * log(M)) محاسبه میشه که در اون N تعداد نمونه‌ها و M تعداد ویژگی‌هاست.

🔵پیچیدگی زمانی XGBoost به عوامل مختلفی مثل تعداد دوره‌های تکرار (n_rounds)، تعداد ویژگی‌ها و تعداد نمونه‌ها بستگی داره و به صورت O(K * N * M) محاسبه میشه که در اون K تعداد دوره‌های تکراره.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌53👍2
💡مقایسه XGBoost با روش‌های یادگیری عمیق مثل ANNs، CNNs، RNNs

الگوریتم XGBoost یک الگوریتم مبتنی بر درخت تصمیمه، در حالی که روش‌های یادگیری عمیق بر اساس شبکه‌های عصبی مصنوعی هستن. یعنی XGBoost نسبت به روش‌های یادگیری عمیق، قابل تفسیرتره؛ چون ساختار درخت تصمیم نسبت به شبکه‌های عصبی برای درک آسان‌تره.

علاوه بر این، XGBoost برای تسک‌های رگرسیون و طبقه‌بندی قابل استفاده است، در حالی که روش‌های یادگیری عمیق معمولاً فقط برای تسک‌های طبقه‌بندی به کار می‌رن. در نهایت، آموزش XGBoost به طور کلی سریع‌تر از روش‌های یادگیری عمیقه؛ هرچند این می‌تونه بسته به داده‌های خاص و پارامترهای مدل متفاوت باشه.

#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👏1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵مقایسه Bagging و Boosting و Stacking
👉🔗 https://t.iss.one/data_ml/239

🔵استفاده از Gradient در Xgboost
👉🔗 https://t.iss.one/data_ml/242

🔵الگوریتم Xgboost در رگرسیون و طبقه‌بندی
👉🔗 https://t.iss.one/data_ml/245

🔵پیاده سازی Xgboost از پایه (Scratch)
👉🔗 https://t.iss.one/data_ml/248

🔵پکیج پایتونی Xgboost
👉🔗 https://t.iss.one/data_ml/251

🔵مقایسه Xgboost و Random Forest
👉🔗 https://t.iss.one/data_ml/254

🔺 کوئیز

🔵کوئیز شماره ۶۷: تکنیک‌ مناسب برای کاهش overfitting در XGBoost
👉🔗 https://t.iss.one/data_ml/240

🔵کوئیز شماره ۶۸: آموزش افزایشی مدل‌ها در XGBoost
👉🔗 https://t.iss.one/data_ml/243

🔵کوئیز شماره ۶۹: XGBoost و داده‌های نامتوازن
👉🔗 https://t.iss.one/data_ml/246

🔵کوئیز شماره ۷۰: روش محاسبه اهمیت ویژگی‌ها در XGBoost
👉🔗 https://t.iss.one/data_ml/249

🔵کوئیز شماره ۷۱: subsampling در XGBoost
👉🔗 https://t.iss.one/data_ml/252

🔵کوئیز شماره ۷۲: روش هرس کردن
👉🔗 https://t.iss.one/data_ml/255

🔺 نکته

🔵دلایل عدم استفاده همیشگی از یادگیری گروهی
👉🔗 https://t.iss.one/data_ml/241

🔵کاربردهای Ensemble Learning در دنیای واقعی
👉🔗 https://t.iss.one/data_ml/244

🔵پارامتر گاما (gamma) در XGBoost
👉🔗 https://t.iss.one/data_ml/247

🔵بلاگ آشنایی با الگوریتم XGBoost
👉🔗 https://t.iss.one/data_ml/250

🔵تفاوت بین GBM و XGBoost
👉🔗 https://t.iss.one/data_ml/253

🔵مقایسه XGBoost با روش‌های یادگیری عمیق
👉🔗 https://t.iss.one/data_ml/256

#Weekend
#Machine_Learning
#Xgboost

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👏31🔥1
👩‍🎓 برنامه آموزشی هفته: کاهش ابعاد یا Dimensionality Reduction

🟠شنبه: هدف از کاهش ابعاد

🔵یک‌شنبه: انواع روش‌های کاهش ابعاد

🟢دوشنبه: بررسی PCA با جزئیات

🔴سه‌شنبه: بررسی t-SNE با جزئیات

🟠چهارشنبه: بررسی UMAP با جزئیات

🔵پنج‌شنبه: کاربردهای کاهش ابعاد

🟢جمعه: جمع بندی

#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6👌1