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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
👨‍🎓 استفاده از 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
👨‍🎓 هدف از کاهش ابعاد

کاهش ابعاد یا Dimensionality Reduction فرآیندیه که در طولش تعداد متغیرها یا ویژگی‌های (Features) موجود در داده‌ها کاهش پیدا می‌کنه؛ بدون اینکه اطلاعات مهم و مرتبط با مسئله به طور قابل توجهی از دست برن.

🔵 اهداف کاهش ابعاد

🔵کاهش پیچیدگی محاسباتی: با کاهش تعداد ویژگی‌ها، الگوریتم‌های یادگیری ماشین سریع‌تر و با کارایی بالاتری آموزش می‌بینن.

🔵کاهش مشکل بیش‌برازش (Overfitting): با حذف ویژگی‌های غیرضروری یا تکراری، مدل کمتر مستعد بیش‌برازش خواهد بود.

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

🔵کاهش نیاز به حافظه: ذخیره‌سازی داده‌ها با تعداد ویژگی‌های کمتر به فضای کمتری نیاز داره.

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

🔵روش‌های خطی: این روش‌ها سعی می‌کنن ساختار داده‌ها رو در فضایی با بعد پایین‌تر نمایش بدن، در حالی که اطلاعات مهم حفظ میشن.

- تجزیه مولفه‌های اصلی (PCA): محبوب‌ترین روش برای کاهش ابعاد که با پیدا کردن مولفه‌های اصلی که بیشترین واریانس داده‌ها رو حفظ کنن، کار می‌کنه.

- تجزیه مقادیر منفرد (SVD): روشی که از تجزیه ماتریس برای کاهش بُعد استفاده می‌کنه.

🔵روش‌های غیرخطی: این روش‌ها برای داده‌هایی که ساختار پیچیده‌تری دارن مناسب‌تر هستن.

- تعبیه چندبُعدی مقیاس (MDS): روشی که سعی داره فواصل بین نقاط در فضای کاهش یافته رو حفظ کنه.
- توزیع استوکاستیک همسایگی t-SNE: روشی محبوب برای کاهش بُعدیت که ساختارهای محلی داده‌ها رو حفظ می‌کنه و برای تصویرسازی داده‌های پیچیده مفیده.

🔵 چالش‌ها

چالش‌های کاهش ابعاد شامل انتخاب تعداد ابعاد مناسب برای کاهش، حفظ تمام اطلاعات مهم و اطمینان از اینکه کاهش ابعاد به تفسیرپذیری مدل آسیب نمی‌زنه، میشه.

#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63👌3
👨‍🎓 انواع روش‌های کاهش ابعاد

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

🔵 روش‌های حفظ ویژگی‌های مهم

🔵حذف ویژگی به روش عقب‌گرد (Backward Elimination): در این روش با تمام ویژگی‌ها شروع می‌کنیم و در هر مرحله، ویژگی‌ای که کمترین تأثیر رو بر دقت مدل داره، حذف می‌شه. این فرآیند تا زمانی ادامه پیدا می‌کنه که فقط ویژگی‌های با اهمیت باقی بمونن.

🔵انتخاب ویژگی به روش جلوگرد (Forward Selection): در این روش، برعکس حذف به روش عقب‌گرد، با هیچ ویژگی شروع نمی‌کنیم و ویژگی‌ها یکی یکی به مدل اضافه می‌شن. هر ویژگی که بیشترین بهبود رو در عملکرد مدل داشته باشه، انتخاب می‌شه و در نهایت فقط مجموعه‌ای از ویژگی‌های مهم باقی می‌مونن.

🔵جنگل‌های تصادفی (Random Forests): این الگوریتم به خودی خود می‌تونه اهمیت ویژگی‌ها رو مشخص کنه و بنابراین برای انتخاب ویژگی‌ها مورد استفاده قرار می‌گیره. جنگل‌های تصادفی با ترکیب چندین درخت تصمیم و بررسی چگونگی عملکرد هر ویژگی در این درخت‌ها، ویژگی‌های مهم رو شناسایی می‌کنن.

🔵 روش‌های خطی

🔵تحلیل مؤلفه‌های اصلی (PCA): این روش از تبدیلات زاویه‌دار برای تبدیل ویژگی‌های مرتبط به مجموعه‌ای از ویژگی‌های آماری مستقل استفاده می‌کنه که به اونها مؤلفه‌های اصلی گفته می‌شه.

🔵تحلیل عاملی (FA): این تکنیک برای پیدا کردن علت‌ها یا فاکتورهایی هست که مستقیماً مشهود نیستن اما می‌تونن رفتار یا الگوهایی که در داده‌ها دیده میشه رو توجیه کنن.

🔵تحلیل تمایزی خطی (LDA): LDA سعی در پیدا کردن ترکیب خطی از ویژگی‌ها داره که بیشترین جداسازی بین کلاس‌های مختلف داده‌ها رو ایجاد کنه.

🔵تحلیل مؤلفه‌های متقطع (Truncated SVD): روش Truncated SVD برای کاهش بُعد داده‌هایی که به صورت ماتریس‌های Sparse (کم تراکم) هستن، به کار می‌ره. این روش برای مواردی مثل ماتریس‌های متنی یا داده‌هایی که در اونها بیشتر مقادیر صفر هستن، مناسبه.

🔵 روش‌های غیرخطی (یادگیری Manifold)

🔵تحلیل مؤلفه‌های هسته‌ای (Kernel PCA): این روش یک توسعه غیرخطی از PCA هست که امکان کاهش بُعد در داده‌هایی که رابطه‌های غیرخطی دارن رو فراهم می‌کنه.

🔵توزیع تصادفی همسایه نزدیک با توزیع t: یک تکنیک قدرتمند برای کاهش بُعد، t-SNE هست که برای مصورسازی داده‌های با بُعد بالا به کار می‌ره. این روش سعی در حفظ ساختارهای محلی داده‌ها در فضای کاهش بُعد یافته داره و به طور گسترده‌ در تجزیه و تحلیل داده‌های پیچیده مثل داده‌های ژنتیکی کاربرد داره.

🔵تحلیل تفاوت‌های چندبُعدی: MDS یک روش کاهش بُعد هست که با حفظ فاصله‌های بین نقاط در فضای بُعد بالا، به کاهش بُعد داده‌ها می‌پردازد.

🔵تصویرسازی بُعد کمتر با حفظ فواصل: روش Isomap یکی از اولین تکنیک‌های یادگیری Manifold هست که با ترکیب روش‌های محاسبه فاصله‌ی کوتاه‌ترین مسیر و کاهش بُعد خطی، به حفظ ساختار کلی داده‌ها در فضای کاهش بُعد یافته کمک می‌کنه.

اگه داده‌ها دارای روابط غیرخطی قوی باشن، استفاده از روش‌های غیرخطی مثل Kernel PCA یا t-SNE مناسبه. در حالی که اگه داده‌ها به صورت خطی جدا بشن، استفاده از PCA یا LDA مؤثرتره. t-SNE برای مجموعه‌های داده‌های بزرگ بسیار زمان‌بره و نیاز به تنظیم دقیق پارامترها داره.

در نهایت، هدف از کاهش بُعد اینکه بتوانیم داده‌های پیچیده رو به شکلی ساده‌تر برای تحلیل و مدل‌سازی در یادگیری ماشین تبدیل کنیم. این کار نه تنها به بهبود عملکرد الگوریتم‌ها کمک می‌کنه بلکه امکان تصویرسازی داده‌هایی که در فضاهای بُعد بالا قرار دارن رو هم فراهم می‌کنه. همچنین، با کاهش ابعاد، overfitting هم کاهش پیدا می‌کنه چون مدل کمتر توسط نویز و ویژگی‌های غیرمرتبط تأثیر می‌پذیره.

#Machine_Learning
#Dimensionality_Reduction

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