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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
کوئیز شماره ۴۶: توی جستجوی نزدیک‌ترین همسایه با استفاده از درخت K-بعدی، در چه شرایطی به شاخه متفاوتی از درخت برمی‌گردیم؟
Anonymous Quiz
61%
زمانیکه فاصله نقطه جستجو از مرز تقسیم کمتر از فاصله فعلی باشه
14%
فقط زمانی که در نقطه میانی درخت هستیم
14%
فقط اگه نقطه جستجو توی یک بعد خاص باشه
11%
همیشه به هر دو شاخه سرکشی می‌کنیم
👏52😎2
💡نرمال‌سازی داده‌ها در استفاده از الگوریتم KNN

زمان استفاده از الگوریتم KNN، ضروریه داده‌ها نرمال‌سازی شن تا مطمئن شیم هیچ کدوم از ویژگی‌ها به دلیل تفاوت‌های مقیاس از اهمیت بیشتر یا کمتری برخوردار نشدن. برای نرمال‌سازی میشه از دو روش رایج Min-Max Normalization و Z-score normalization استفاده کرد.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👏3👌1
👨‍🏫 چالش‌ها و معایب KNN

🔵حساسیت به مقیاس داده‌ها: الگوریتم KNN به شدت به مقیاس داده‌ها حساسه. داده‌هایی که در یک مقیاس نباشن می‌تونن باعث تحریف نتایج شن. بنابراین، نرمال‌سازی داده‌ها (مثل استانداردسازی یا نرمال‌سازی) قبل از استفاده از KNN ضروریه.

🔵نیاز به انتخاب K: انتخاب تعداد مناسب همسایه‌ها (K) یک چالشه. K بسیار کوچک می‌تونه به نویز حساس باشه و K بسیار بزرگ ممکنه مرزهای تصمیم‌گیری رو مبهم کنه. انتخاب K مناسب نیازمند آزمون و خطاست.

🔵محاسبات سنگین: KNN برای هر نمونه تست نیاز به محاسبه فاصله با تمام نمونه‌های آموزش داره. در نتیجه توی مجموعه‌های داده بزرگ بسیار کند عمل می‌کنه.

🔵تاثیرپذیری از نویز و داده‌های پرت: KNN به نویز و داده‌های پرت حساسه. حضور داده‌های نامرتبط یا پرت روی دقت مدل تاثیر منفی می‌ذاره.

🔵نیاز به انتخاب فاصله مناسب: انتخاب نوع فاصله (مثل فاصله اقلیدسی، منهتن، یا مینکوفسکی) تاثیر زیادی روی عملکرد مدل داره. انتخاب نادرست باعث کاهش دقت مدل میشه.

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

🔵مستعد برازش بیش از حد: این الگوریتم تحت تاثیر ابعاد بالا قرار می‌گیره یعنی زمانی که ویژگی‌ها زیاد هستن، با مشکل طبقه‌بندی صحیح نقاط داده روبرو میشه و همچنین مستعد بیش‌برازشه. معمولاً تکنیک‌های انتخاب ویژگی و کاهش ابعاد توی این الگوریتم به کار گرفته می‌شن.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71👨‍💻1
💡آیا میشه الگوریتم KNN رو به مفهوم Bias-Variance tradeoff مرتبط دونست؟

الگوریتم KNN رو میشه مستقیماً با مفهوم Bias-Variance tradeoff مرتبط دونست. Bias به میزان خطایی اشاره داره که توی مدل رخ می‌ده، و پراکندگی (Variance) به میزان حساسیت مدل نسبت به تغییرات توی دیتاست آموزشی اشاره داره.

توی KNN، مقدار K نقش مهمی برای تعادل Bias-Variance tradeoff داره. اگه K خیلی کوچک باشه (مثلاً 1 یا 2)، مدل ممکنه به شدت نسبت به داده‌های آموزشی حساس شه و پراکندگی بالایی داشته باشه؛ در نتیجه overfitting رخ بده.

از طرف دیگه مقدار بزرگ K، باعث میشه مدل نمی‌تونه الگوهای پیچیده‌ دیتاست رو یاد بگیره، عملکرد ضعیفی داشته باشه و underfitting رخ بده. بنابراین، انتخاب K متعادل می‌تونه به تعادل Bias-Variance tradeoff کمک کنه.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌93👨‍💻1
👨‍🏫 کاربردها و مزایا KNN

🔵 کاربردها

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

🔵طبقه‌بندی و پیش‌بینی: توی زمینه‌هایی مثل تشخیص بیماری‌ها، تحلیل مشتریان در بازاریابی، یا پیش‌بینی روندهای مالی، K نزدیک‌ترین همسایه می‌تونه برای طبقه‌بندی و پیش‌بینی موثر باشه.

🔵توصیه‌گر سیستم‌ها: این الگوریتم توی سیستم‌های توصیه‌گر، مثل توصیه فیلم یا محصول، به کار گرفته می‌شه تا تجربه کاربری شخصی‌سازی شده‌ای ارائه بده.

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

🔵 مزایا

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

🔵انعطاف‌پذیری: K نزدیک‌ترین همسایه قابلیت کار توی شرایط و داده‌های مختلف رو داره و می‌تونه برای انواع مختلف داده‌ها و مسائل استفاده شه.

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

🔵موثر در مجموعه‌های داده کوچک: K نزدیک‌ترین همسایه می‌تواند در مجموعه‌های داده کوچکتر نیز موثر عمل کنه.

🔵تطابق‌پذیری آسان: با توجه به نحوه کار الگوریتم K نزدیک‌ترین همسایه که تمام داده‌ها رو توی حافظه ذخیره می‌کنه، زمانیکه نمونه یا نقطه داده جدیدی اضافه شه، الگوریتم خودش رو با اون نمونه جدید تطابق میده و توی پیش‌بینی‌های آینده هم تأثیر می‌گذاره.

🔵تعداد کمی هایپرپارامترها: تنها پارامترهایی که برای آموزش الگوریتم K نزدیک‌ترین همسایه لازمه، مقدار k و انتخاب متریک فاصله‌ای هست که می‌خوایم از بین معیارهای ارزیابی انتخاب کنیم.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻1
💡آیا ابعاد بالا می‌تونه برای KNN مشکل ساز بشه؟

بله، این الگوریتم ممکنه تحت تأثیر مشکل ابعاد بالا قرار بگیره. این مشکل به چالش‌هایی اشاره داره که زمان افزایش تعداد ویژگی‌ها یا ابعاد فضای ویژگی‌ها رخ می‌ده.

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

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

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻1
👨‍🏫 الگوریتم KNN در Scikit-learn

برای پیاده‌سازی KNN در Scikit-learn، اول باید کلاس KNeighborsClassifier رو از ماژول sklearn.neighbors وارد کنیم. این کلاس امکان استفاده از الگوریتم KNN رو فراهم می‌کنه.

🔵وارد کردن کلاس KNeighborsClassifier: اول باید کلاس KNeighborsClassifier رو وارد کنیم.

🔵ایجاد یک نمونه از KNeighborsClassifier: بعد یک نمونه از این کلاس ایجاد و تعداد همسایه‌ها (n_neighbors) و سایر پارامترها رو تنظیم کنیم.

🔵آموزش دادن به مدل: با استفاده از داده‌های آموزشی، مدل رو آموزش می‌دیم. این شامل تنظیم مدل با داده‌های feature و labels هست.

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

🔵ارزیابی عملکرد مدل: از معیارهای مختلف مثل accuracy برای ارزیابی عملکرد مدل استفاده می‌شه.

🔵پارامترهای مهم

- n_neighbors: تعیین تعداد همسایه‌های در نظر گرفته شده.
- weights: تعیین نحوه وزن‌دهی به همسایه‌ها ('uniform' یا 'distance').
- metric: انتخاب معیار فاصله برای محاسبه همسایگی.

from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score

iris = load_iris()
X = iris.data
y = iris.target

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

knn = KNeighborsClassifier(n_neighbors=3)

knn.fit(X_train, y_train)
predictions = knn.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f'دقت مدل: {accuracy}')


#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71👌1👨‍💻1
کوئیز شماره ۴۹: توی استفاده از KNeighborsClassifier, در چه شرایطی باید مقدار پارامتر algorithm رو از auto (که حالت پیش فرضه) به kd_tree یا ball_tree تغییر داد؟
Anonymous Quiz
50%
زمان کار با داده‌های بسیار بزرگ
19%
زمانی که تعداد ویژگی‌ها (features) کمه
19%
فقط در مواردی که سرعت محاسبات اهمیت داره
13%
زمانی که داده‌ها غیر عددی هستن
6👌2😎2
💡 تأثیر داده‌های Sparse روی الگوریتم KNN

یه نکته مهم برای استفاده از KNeighborsClassifier توی Scikit-learn اینکه اگه داده‌های ورودی به صورت sparse (پراکنده) باشن، به طور خودکار الگوریتم برای محاسبه همسایه‌های نزدیک از روش brute force استفاده می‌کنه.

یعنی تنظیمات پیش‌فرض الگوریتم برای انتخاب بهترین روش محاسبه همسایه‌های نزدیک، مثل auto, ball_tree, kd_tree در صورتی که داده‌ها sparse باشن، نادیده گرفته می‌شن و به جاش از روش brute force استفاده می‌شه. این موضوع می‌تونه روی عملکرد و سرعت مدل تأثیر بگذاره.

#Machine_Learning
#KNN

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

🔺 آموزشی

🔵تعریف KNN و بررسی نقش K
👉🔗 https://t.iss.one/data_ml/156

🔵پیچیدگی محاسباتی KNN
👉🔗 https://t.iss.one/data_ml/159

🔵بررسی ساختار K-Dimensional Trees در KNN
👉🔗 https://t.iss.one/data_ml/162

🔵چالش‌ها و معایب KNN
👉🔗 https://t.iss.one/data_ml/165

🔵کاربردها و مزایا KNN
👉🔗 https://t.iss.one/data_ml/168

🔵الگوریتم KNN در Scikit-learn
👉🔗 https://t.iss.one/data_ml/171

🔺 کوئیز

🔵کوئیز شماره ۴۴: الگوریتم KNN یادگیری تنبل
👉🔗 https://t.iss.one/data_ml/157

🔵کوئیز شماره ۴۵: KNN Imputer
👉🔗 https://t.iss.one/data_ml/160

🔵کوئیز شماره ۴۶: K-D Tree در KNN
👉🔗 https://t.iss.one/data_ml/163

🔵کوئیز شماره ۴۷: معایب KNN
👉🔗 https://t.iss.one/data_ml/166

🔵کوئیز شماره ۴۸: روش انتخاب مقدار K
👉🔗 https://t.iss.one/data_ml/169

🔵کوئیز شماره ۴۹: مقدار algorithm در KNeighborsClassifier
👉🔗 https://t.iss.one/data_ml/172

🔺 نکته

🔵انتخاب مقدار k بهینه در KNN
👉🔗 https://t.iss.one/data_ml/158

🔵تفاوت بین k-Means و KNN
👉🔗 https://t.iss.one/data_ml/161

🔵نرمال‌سازی داده‌ها در KNN
👉🔗 https://t.iss.one/data_ml/164

🔵الگوریتم KNN و Bias-Variance tradeoff
👉🔗 https://t.iss.one/data_ml/167

🔵ابعاد بالا و KNN
👉🔗 https://t.iss.one/data_ml/170

🔵تأثیر داده‌های Sparse روی الگوریتم KNN
👉🔗 https://t.iss.one/data_ml/173

#Weekend
#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👏2
🟡 دوره‌های مقدماتی و پیشرفته علم داده

دنیای داده‌ها جذابه و دونستن علم داده، توانایی تحلیل داده‌، یا بازاریابی مبتنی بر داده، می‌تونه شما رو برای فرصت‌های شغلی زیادی مناسب کنه.

فارغ از رشته‌ و پیش زمینه‌تون، می‌تونین با استفاده از دوره‌های رضا شکرزاد این مسیر رو شروع کنین و از سطح مقدماتی تا پیشرفته پیش برین.

🟢 دوره جامع دیتاساینس و ماشین لرنینگ:
👉📎 https://ctdrs.ir/cr14924

❗️دانشجویان دوره علم داده ۱ می‌تونن با پرداخت اختلاف هزینه، دوره جامع رو تهیه کنن.

🔵 هوش تجاری و تحلیل داده با Tableau و Power BI:
👉📎 https://ctdrs.ir/cr14230

🟠مارکتینگ داده‌محور:
👉📎 https://ctdrs.ir/cr13581

#Courses

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👏72👍1🔥1
👩‍🎓 برنامه آموزشی هفته: الگوریتم ماشین بردار پشتیبان یا SVM

🟠شنبه: تعریف SVM و مرز تصمیم گیری

🔵یک‌شنبه: بررسی حاشیه در SVM با جزئیات

🟢دوشنبه: کرنل در SVM

🔴سه‌شنبه: انواع کرنل

🟠چهارشنبه: حاشیه در Sklearn

🔵پنج‌شنبه: کرنل در Sklearn

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

#Machine_Learning
#SVM

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5👏2
👨‍🎓 تعریف SVM و مرز تصمیم گیری

🔵 الگوریتم ماشین بردار پشتیبان (Support Vector Machine)

🔵ماشین بردار پشتیبان، یک مدل یادگیری نظارت شده است که برای طبقه‌بندی و رگرسیون استفاده می‌شه. این مدل با پیدا کردن یه مرز تصمیم (hyperplane) در فضای ویژگی‌ها، داده‌ها رو به دسته‌های مختلف تقسیم می‌کنه.

🔵توی مواردی که داده‌ها به صورت خطی قابل جداسازی نیستن، SVM از توابع هسته (kernel functions) برای افزایش بعد داده‌ها و پیدا کردن یه مرز تصمیم مناسب در فضای بالاتر استفاده می‌کنه.

🔵یکی از ویژگی‌های مهم SVM، بهینه‌سازی مارجینه. Margin فاصله بین مرز تصمیم و نزدیک‌ترین نمونه‌های داده به این مرزه. SVM تلاش می‌کنه تا این فاصله رو بیشینه کنه.

🔵 مرز تصمیم (Decision Boundary)

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

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

#Machine_Learning
#SVM

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4👨‍💻1
💡آیا SVM می‌تونه زمان طبقه‌بندی یک نمونه، یک امتیاز اطمینان یا احتمال به دست بیاره؟

ماشین بردار پشتیبان (SVM) می‌تونه فاصله بین نمونه‌های آزمایش و مرز تصمیم رو به عنوان خروجی ارائه بده. این فاصله رو میشه به عنوان یک نمره اطمینان (confidence score) در نظر گرفت، اما نمیشه از این نمره به طور مستقیم برای تبدیل به احتمال کلاس استفاده کرد (احتمالی نشون می‌ده که مدل چقدر مطمئنه که یک داده خاص به یک کلاس مشخص تعلق داره).

اما اگه در زمان ساخت مدل SVM از کتابخانه Scikit-Learn گزینه probability=True تنظیم شه، بعد از آموزش، مدل احتمالات رو با استفاده از رگرسیون لجستیک روی امتیازات SVM تنظیم می‌کنه.

با استفاده از این پارامتر، میشه ()predict_proba و ()predict_log_proba رو به مدل SVM اضافه کرد. این امکان، کاربرد SVM رو توی مسائلی که نیاز به محاسبه احتمال دارن، ممکنه می‌کنه.

svm = SVC(probability=True, random_state=42)
svm.fit(X_train, y_train)
probabilities = svm.predict_proba(X_test)


#Machine_Learning
#SVM

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

الگوریتم Support Vector Machine برای تشخیص الگوها در داده‌های پیچیده و ایجاد حد تصمیم برای جدا کردن دسته‌های مختلف ایجاد شده. یکی از پارامترهای SVM، حاشیه (Margin) هست که نقش مهمی در کارایی این الگوریتم داره.

🔵مفهوم Margin: به فاصلهٔ کمینه ممکن بین دسته‌های مختلف در فضای ویژگی، حاشیه میگن. با استفاده از حاشیه، الگوریتم سعی می‌کنه یک مرز تصمیم بهینه ایجاد کنه که داده‌های هر دسته به بهترین شکل ممکن از هم جدا شن.

🔵چرا Margin مهمه؟ حاشیه در SVM نشون‌دهنده اطمینان مدل در پیش‌بینی داده‌های جدیده. حاشیه بیشینه به معنی حداقل کردن احتمال خطاست و به مدل اجازه می‌ده که با داده‌های پیچیده‌ عملکرد خوبی داشته باشه.

🔵نحوه محاسبه حاشیه: برای محاسبهٔ حاشیه SVM، ما به دو دسته اصلی اطلاعات نیاز داریم: ویژگی‌ها و برچسب‌ها. حاشیه به صورت عمودی به بهترین شکل ممکن بین دو دسته قرار می‌گیره.

🔵حاشیه سخت: حاشیه سخت در SVM به موقعیتی اشاره داره که داده‌ها به صورت کاملاً صحیح و بدون خطا دسته‌بندی می‌شن. در این حالت، مدل به دنبال پیدا کردن یک حاشیه کاملاً جداکننده بدون خطا بین دسته‌هاست.

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

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

#Machine_Learning
#SVM

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌3👨‍💻1
کوئیز شماره ۵۱: در SVM، ما به دنبال به حداکثر رساندن Margin بین نقاط داده و hyperplane هستیم. تابع هزینه‌ای که به حداکثر رساندن Margin کمک می‌کنه ______ نام داره.
Anonymous Quiz
22%
Categorical cross-entropy loss
27%
Binary cross-entropy loss
27%
hinge loss
24%
هیچ کدام
😎8👍2👏1