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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
کوئیز شماره ۴۲: چطور میشه توضیح داد که نایو بیز تا چه حد در برابر ویژگی‌های نامربوط مقاومه و این موضوع چه تأثیری روی عملکرد کلیش داره؟
Anonymous Quiz
26%
مقاومت کامل، بدون تأثیر منفی بر دقت
46%
مقاومت متوسط، با کاهش جزئی در دقت
14%
حساسیت بالا، با کاهش قابل توجه در دقت
14%
حساسیت نسبی، با تغییرات پیچیده در عملکرد
😎6👌21
💡تفاوت بین طبقه‌بندی کننده‌های مولد و تشخیص دهنده چیه؟ نمونه‌هایی از هرکدوم، کدوم الگوریتم‌ها میشن؟

🔵طبقه‌بندی‌کننده‌های مولد (Generative Classifier) به صورت صریح توزیع واقعی هر کلاس رو مدل می‌کنن. این مدل توزیع احتمال مشترک رو که به صورت P(x, y) = P(y) * P(x|y) هست، یاد می‌گیره. هر دو P(y) و P(x|y) رو میشه از داده‌ها با محاسبه فراوانی کلاس‌ها به دست آورد. بعضی از نمونه‌های مدل‌های مولد عبارتند از:
- نایو بیز
- شبکه‌های بیزی
- میدان‌های تصادفی مارکوف

🔵طبقه‌بندی‌کننده‌های تشخیص دهنده (Discriminative Classifier) مرز تصمیم بین کلاس‌ها رو با یادگیری توزیع احتمال شرطی P(y|x) از مجموعه داده‌ها مدل می‌کنن. بعضی از نمونه‌های این نوع طبقه‌بندی کننده‌ها عبارتند از:
- رگرسیون لجستیک
- ماشین بردار پشتیبان
- شبکه‌های عصبی سنتی
- KNN

#Machine_Learning
#Naive_Bayes

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

توی این کد انواع مختلف طبقه‌بندی‌کننده‌های نایو بایز رو روی یک دیتاست پیاده سازی و عملکرد‌ها رو مقایسه کردیم. این کد برای هر مدل بیز ساده، دقت (accuracy) رو محاسبه می‌کنه و بهترین مدل رو بر اساس بالاترین دقت انتخاب می‌کنه.

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB, MultinomialNB, BernoulliNB
from sklearn.metrics import accuracy_score

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

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

models = {
"GaussianNB": GaussianNB(),
"MultinomialNB": MultinomialNB(),
"BernoulliNB": BernoulliNB()
}

for name, model in models.items():
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"{name} Accuracy: {accuracy}")

best_model = max(models, key=lambda k: models[k].score(X_test, y_test))
print(f"Best Model: {best_model}")

🔜GaussianNB Accuracy: 0.97
MultinomialNB Accuracy: 0.95
BernoulliNB Accuracy: 0.28
Best Model: GaussianNB

🔵از این خروجی نتیجه می‌گیریم که GaussianNB با فرض توزیع نرمال برای ویژگی‌های دیتاست، یک فرض مناسب بوده. این طبقه‌بندی‌کننده معمولاً توی داده‌های پیوسته که توزیع نرمال دارن، خوب عمل می‌کنه. MultinomialNB بیشتر برای داده‌هایی که ویژگی‌هاشون به صورت شمارشی هستن، مثل تعداد کلمات یک متن، طراحی شده. علی‌رغم اینکه دیتاست ایریس ویژگی‌های پیوسته داره، این مدل همچنان عملکرد خوبی نشون داده. BernoulliNB با دقت بسیار پایین عملکرد ضعیفی داشته چون این مدل برای داده‌های دودویی (مثل وجود یا عدم وجود چیزی یا 0 و 1) مناسبه. دیتاست ایریس ویژگی‌های پیوسته داره و این مدل برای چنین نوع داده‌هایی مناسب نیست.

#Machine_Learning
#Naive_Bayes

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74👌2👏1
کوئیز شماره ۴۳: کدوم یک از پارامترهای زیر در مدلی که از sklearn.naive_bayes import GaussianNB ساخته میشه، وجود نداره؟
Anonymous Quiz
26%
var_smoothing
20%
priors
31%
alpha
23%
class_prior
😎7👍3🤔1
💡مهم‌ترین پارامترهای انواع مدل‌های بیز ساده در sklearn

🔵 GaussianNB

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

🔵پارامتر var_smoothing برای جلوگیری از صفر شدن واریانس‌ها استفاده می‌شه و مقدار کمی به واریانس‌ها اضافه می‌کنه. این مقدار معمولاً بین 0.01 تا 0.1 تعیین میشه.

🔵 MultinomialNB

🔵پارامتر alpha مقداری به همه ویژگی‌ها اضافه می‌کنه تا جلوی وابستگی شدید به داده‌های خاص گرفته شه.

🔵پارامتر fit_prior تعیین می‌کنه که آیا احتمالات قبلی باید از داده‌ها یاد گرفته شه یا نه. اگر false باشه، توزیع یکنواخت برای احتمالات قبلی استفاده می‌شه. مقدار پیش فرض این پارامتر True هست.

🔵پارامتر class_prior مشابه با پارامتر priors توی GaussianNB، احتمالات قبلی برای هر کلاس رو تعیین می‌کنه.

🔵 BernoulliNB

🔵پارامتر binarize یک آستانه تعیین می‌کنه که بر اساسش ویژگی‌ها به 0 یا 1 تبدیل می‌شن و برای داده‌هایی که به صورت دودویی نیستن ولی می‌خوایم به این شکل تبدیل شن، مفیده.

🔵پارامترهای alpha ،fit_prior و class_prior توی این مدل مشابه با نحوه عملکردشون توی مدل MultinomialNB، کاربرد دارن.

#Machine_Learning
#Naive_Bayes

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

🔺 آموزشی

🔵تعریف و انواع بیز ساده
👉🔗 https://t.iss.one/data_ml/137

🔵Multinomial & Bernoulli Naive Bayes
https://t.iss.one/data_ml/139

🔵Gaussian Naive Bayes
👉🔗 https://t.iss.one/data_ml/142

🔵نحوه بهبود عملکرد الگوریتم بیز ساده
👉🔗 https://t.iss.one/data_ml/144

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

🔵بررسی بیز ساده در sklearn با یک مثال واقعی
👉🔗 https://t.iss.one/data_ml/150


🔺 کوئیز

🔵کوئیز شماره ۳۹: نحوه محاسبه احتمال در MultinomialNB
👉🔗 https://t.iss.one/data_ml/140

🔵کوئیز شماره ۴۰: پارامتر GaussianNB در sklearn
👉🔗 https://t.iss.one/data_ml/143

🔵کوئیز شماره ۴۱: تکنیک Laplace Smoothing
👉🔗 https://t.iss.one/data_ml/145

🔵کوئیز شماره ۴۲: میزان مقاوت نایو بیز در برابر ویژگی‌های نامربوط
👉🔗 https://t.iss.one/data_ml/148

🔵کوئیز شماره ۴۳: پارامتر GaussianNB در sklearn پارت ۲
👉🔗 https://t.iss.one/data_ml/151

🔺 نکته

🔵مدل‌هایی که فقط Classification انجام میدن
👉🔗 https://t.iss.one/data_ml/138

🔵مقایسه انواع روش‌های Naive Bayes
👉🔗 https://t.iss.one/data_ml/141

🔵مقایسه بیز ساده با لجستیک رگرسیون
👉🔗 https://t.iss.one/data_ml/146

🔵تفاوت بین طبقه‌بندی کننده‌های مولد و تشخیص دهنده
👉🔗 https://t.iss.one/data_ml/149

🔵مهم‌ترین پارامترهای انواع مدل‌های بیز ساده در sklearn
👉🔗 https://t.iss.one/data_ml/152

#Weekend
#Machine_Learning
#Naive_Bayes

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👏61🔥1
Audio
🟡 توضیحات وبینار رایگان بررسی ماشین لرنینگ برای هر موضوع

🔺 سرفصل‌ها

🔵معرفی تسک‌های قابل اجرا با ML
🔵معرفی مدل‌های کلاسیک
🔵معرفی معماری‌های شبکه عصبی مصنوعی
🔵روش‌های ارزیابی عملکرد مدل
🔵بررسی به روزترین روش‌های ML
🔵نحوه و ترتیب یادگیری مدل‌های معرفی شده

📆 یکشنبه، ۱۷ دی ساعت ۱۹

🟢 رایگان ثبت‌نام کنین:‌
👉📎 https://ctdrs.ir/cr15198

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

🟠شنبه: تعریف KNN و بررسی نقش K

🔵یک‌شنبه: پیچیدگی محاسباتی KNN

🟢دوشنبه: بررسی ساختار K-Dimensional Trees در KNN

🔴سه‌شنبه: چالش‌ها و معایب KNN

🟠چهارشنبه: کاربردها و مزایا KNN

🔵پنج‌شنبه: KNN در Scikit Learn

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

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👌2👨‍💻1
👨‍🏫 تعریف KNN و بررسی نقش K

الگوریتم یادگیری باناظر K-Nearest Neighbor(KNN) یا K نزدیک‌ترین همسایه، برای حل مسائل طبقه‌بندی و رگرسیون به کار می‌ره. این الگوریتم بر اساس این فرضیه‌ست که داده‌های مشابه توی فضای ویژگی نزدیک به هم دیگه قرار دارن.

🔵 تعریف KNN

الگوریتم KNN به دلیل غیر پارامتریک بودنش، یعنی اینکه هیچ فرضی راجع به توزیع داده‌ها نمی‌کنه (بر خلاف الگوریتم‌های دیگه مثل GaussianNB که توزیع نرمال داده‌ها رو فرض می‌کنن)، توی مسائل واقعی بسیار قابل استفاده‌ست. KNN یه الگوریتم مبتنی بر برداره و نزدیک‌ترین همسایه‌ها بر اساس روش‌های محاسبه فاصله، مثل فاصله اقلیدسی انتخاب می‌شن.

این الگوریتم می‌تونه هم با داده‌های عددی و هم با داده‌های Categorical کار کنه، که این ویژگی KNN رو به گزینه‌ای انعطاف‌پذیر برای انواع مختلف مجموعه‌های داده تبدیل می‌کنه. K-NN نسبت به بقیه الگوریتم‌ها به نویز و داده‌های خارج از محدوده (outliers) کمتر حساسه.

🔵 بینش پشت KNN

توی تصویر، یه نمودار دو بعدی و داده‌هایی با دو طبقه‌بندی نشون داده شدن. دسته اول با رنگ قرمز، دسته دوم رنگ آبی و یه داده جدید (new data point) که هنوز به هیچ کدوم از دسته‌ها اختصاص داده نشده وجود داره.

براساس الگوریتم KNN، برای طبقه‌بندی داده جدید، ما به دنبال نزدیک‌ترین همسایگان به این نقطه توی فضای ویژگی هستیم. برای مثال، اگه K رو برابر 3 در نظر بگیریم، سه تا از نزدیک‌ترین همسایه‌ها به نقطه جدید رو در نظر می‌گیریم و براساس فاصله این سه همسایه، نقطه جدید رو طبقه‌بندی می‌کنیم.

🔵 نقش K در KNN

مقدار K توی K-NN بسیار مهمه و تعداد همسایه‌ها رو تعیین می‌کنه و انتخابش باید بر اساس داده‌های ورودی صورت بگیره. اگه داده‌های ورودی دارای نویز یا outliers بالایی باشن، انتخاب مقدار بالاتر برای K بهتره. توصیه میشه مقدار K به صورت عدد فرد انتخاب شه و روش‌های اعتبارسنجی متقابل توی انتخاب بهترین مقدار K موثرن.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
11👌2👨‍💻1
کوئیز شماره ۴۴: الگوریتم _______ روش یادگیری تنبل (lazy learner) داره. چون تابع تمیزدهنده (Discriminative function) رو از داده‌های آموزشی یادنمی‌گیره.
Anonymous Quiz
71%
KNN
29%
K-means
👍6😎4👏1
💡در K-NN چطور مقدار بهینه انتخاب میشه؟

هیچ قانون مشخصی برای انتخاب یک k استاندارد وجود نداره. این مقدار بسته به دیتاست متفاوته اما به طور کلی، هدف اصلی حفظ k در حدیه که:

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

یک راه برای جستجوی مقدار بهینه این پارامتر، Elbow method هست که شامل ایجاد یک حلقه for هست که مدل‌های مختلف KNN رو با مقادیر k مختلف آموزش می‌ده، و بعد از مدلی که بالاترین دقت رو داره، استفاده می‌کنه.

#Machine_Learning
#KNN

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

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

الگوریتم K-NN باید برای هر نقطه‌ای که مورد بررسی قرار می‌گیره، فاصله‌اش رو با تمام n نقطه دیگه داده‌ها حساب کنه و برای این محاسبه، باید از تمام d ویژگی‌های هر نقطه عبور کنه (O(n * d))، در نتیجه پیچیدگی محاسباتی زیادی داره.

🔵 عوامل پیچیدگی محاسباتی KNN

🔵تعداد نمونه‌ها (N): با افزایش تعداد داده‌ها، زمان لازم برای پیدا کردن K همسایه نزدیک بیشتر میشه.

🔵تعداد ویژگی‌ها (D): با افزایش تعداد ویژگی‌ها، محاسبه فاصله بین نمونه‌ها پیچیده‌تر و زمان‌برتر میشه.

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

🔵 بهینه‌سازی پیچیدگی محاسباتی

🔵استفاده از الگوریتم‌های KD-Tree یا Ball Tree: این روش‌ها به کاهش تعداد محاسبات لازم برای پیدا کردن K همسایه نزدیک کمک می‌کنن.

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

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

🔵توی داده‌های بزرگ و پیچیده، K نزدیک‌ترین همسایه می‌تونه به شدت کند عمل کنه. توی این موارد، استفاده از تکنیک‌های پردازش موازی و توزیع‌شده، مانند Apache Spark یا Hadoop، به افزایش کارایی کمک می‌کنه.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👌2👏1
کوئیز شماره ۴۵: کدوم یک از الگوریتم‌های یادگیری ماشین زیر می‌تونه برای جایگزین کردن مقادیر گمشده هم توی متغیرهای Categorical و هم توی متغیرهای پیوسته استفاده شه؟
Anonymous Quiz
71%
K-NN
10%
Linear Regression
19%
Logistic Regression
👍6😎4🔥1
💡تفاوت بین k-Means و KNN

الگوریتم k-Means یه الگوریتم خوشه‌بندیه که سعی می‌کنه مجموعه‌ای از نقاط رو به k مجموعه تقسیم کنه؛ به طوری که نقاط هر خوشه نزدیک به هم باشن و بدون نظارته.

الگوریتم KNN یه الگوریتم طبقه‌بندی (یا رگرسیون) هست که برای تعیین طبقه‌بندی یه نقطه، طبقه‌بندی k نزدیک‌ترین نقطه رو ترکیب می‌کنه. باناظره چون سعی می‌کنه یه نقطه رو بر اساس طبقه‌بندی شناخته شده سایر نقاط طبقه‌بندی کنه.

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌91👏1
👨‍🏫 بررسی ساختار K-Dimensional Trees در KNN

درخت KD (درخت K-بعدی) ساختارهای داده پیچیده‌ای هست که برای سازماندهی و جستجوی کارآمد داده‌های چند بعدی به کار می‌ره.

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

الگوریتم درخت KD توی کتابخانه‌های پایتونی مثل Scikit-learn پیاده‌سازی شده، که به کاربران ابزارهای قدرتمندی رو برای بهینه‌سازی عملیات جستجوی نزدیک‌ترین همسایه در ابعاد و ویژگی‌های مختلف دیتاست می‌ده.

کاربرد در KNN

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

پیچیدگی‌ها و بهینه‌سازی‌ها

درخت‌های K-بعدی می‌تونن نامتعادل بشن. استفاده از الگوریتم‌های متعادل کننده مثل درخت‌های AVL یا Red-Black می‌تونن مفید باشن. همچنین انتخاب تعداد همسایه‌ها (K) تأثیر زیادی روی دقت پیش‌بینی داره.

from sklearn.neighbors import KDTree, KNeighborsClassifier
import numpy as np

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]])
y = np.array([0, 1, 0, 1, 0])

knn = KNeighborsClassifier(n_neighbors=3, algorithm='kd_tree')
knn.fit(X, y)

# Predicting the label for a new point using KNN
query_point = np.array([[2, 3]])
prediction = knn.predict(query_point)
print("KNN prediction for the new point: ", prediction)

# Creating an independent KD Tree using the data
kdtree = KDTree(X, leaf_size=30, metric='euclidean')

# Searching for the 3 nearest neighbors using the KD Tree
dist, ind = kdtree.query(query_point, k=3)
print("Nearest neighbors using KD Tree:")
print("Distances: ", dist)
print("Indices: ", ind)

🔜KNN prediction for the new point: [0]
Nearest neighbors using KD Tree:
Distances: [[1.41421356 1.41421356 4.24264069]]
Indices: [[0 1 2]]

#Machine_Learning
#KNN

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌7👨‍💻21👍1
کوئیز شماره ۴۶: توی جستجوی نزدیک‌ترین همسایه با استفاده از درخت 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