❓کوئیز شماره ۴۶: توی جستجوی نزدیکترین همسایه با استفاده از درخت K-بعدی، در چه شرایطی به شاخه متفاوتی از درخت برمیگردیم؟
Anonymous Quiz
61%
زمانیکه فاصله نقطه جستجو از مرز تقسیم کمتر از فاصله فعلی باشه
14%
فقط زمانی که در نقطه میانی درخت هستیم
14%
فقط اگه نقطه جستجو توی یک بعد خاص باشه
11%
همیشه به هر دو شاخه سرکشی میکنیم
👏5❤2😎2
زمان استفاده از الگوریتم 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
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1👨💻1
❓کوئیز شماره ۴۷: معایب استفاده از الگوریتم K نزدیکترین همسایه (KNN) کدوم گزینه میشه؟
Anonymous Quiz
2%
با افزایش تعداد ابعاد، پیدا کردن نزدیکترین همسایههای معنادار سخت میشه.
13%
مصرف زیاد منابع محاسباتی، به ویژه برای دیتاستهای بزرگ، و نیاز به حافظه زیاد برای ذخیره کل دیتاست.
13%
حساسیت به انتخاب K و معیار فاصله.
72%
تمام موارد بالا
😎7👍3👏1
الگوریتم 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
👌9❤3👨💻1
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👨💻1
❓کوئیز شماره ۴۸: کدوم گزینهدر مورد انتخاب مقدار K توی الگوریتم KNN صحیحه؟
Anonymous Quiz
5%
باید برابر با تعداد ویژگیهای مجموعه داده باشه.
26%
باید به صورت جذر تعداد نمونهها در مجموعه دادههای آموزش انتخاب شه.
10%
باید برابر با تعداد نمونههای آموزشی مجموعه داده باشه.
59%
باید به صورت تصادفی انتخاب شه.
👏5👌3😎2❤1
بله، این الگوریتم ممکنه تحت تأثیر مشکل ابعاد بالا قرار بگیره. این مشکل به چالشهایی اشاره داره که زمان افزایش تعداد ویژگیها یا ابعاد فضای ویژگیها رخ میده.
با افزایش ابعاد، دادهها توی فضای بزرگتری پراکنده میشن و فاصله معنادار بین نقاط کمتر میشه، که در نتیجه منجر به کاهش کارایی KNN میشه چون این الگوریتم بر مبنای محاسبه فاصله بین نقاط عمل میکنه.
همچنین، محاسبه فاصله توی ابعاد بالا میتونه بسیار وقتگیر و پرهزینه باشه. به همین دلیل، گاهی اوقات نیازه تا از روشهای کاهش بُعد مثل PCA یا انتخاب ویژگی استفاده شه تا فقط ابعاد مرتبط و مؤثر دادهها حفظ شه.
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👨💻1
برای پیادهسازی KNN در Scikit-learn، اول باید کلاس
KNeighborsClassifier
رو از ماژول sklearn.neighbors
وارد کنیم. این کلاس امکان استفاده از الگوریتم KNN رو فراهم میکنه.KNeighborsClassifier
رو وارد کنیم.- 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
👍7❤1👌1👨💻1
❓کوئیز شماره ۴۹: توی استفاده از KNeighborsClassifier, در چه شرایطی باید مقدار پارامتر algorithm رو از auto (که حالت پیش فرضه) به kd_tree یا ball_tree تغییر داد؟
Anonymous Quiz
50%
زمان کار با دادههای بسیار بزرگ
19%
زمانی که تعداد ویژگیها (features) کمه
19%
فقط در مواردی که سرعت محاسبات اهمیت داره
13%
زمانی که دادهها غیر عددی هستن
❤6👌2😎2
یه نکته مهم برای استفاده از 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
👍7❤2👏1
#Weekend
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👏2
دنیای دادهها جذابه و دونستن علم داده، توانایی تحلیل داده، یا بازاریابی مبتنی بر داده، میتونه شما رو برای فرصتهای شغلی زیادی مناسب کنه.
فارغ از رشته و پیش زمینهتون، میتونین با استفاده از دورههای رضا شکرزاد این مسیر رو شروع کنین و از سطح مقدماتی تا پیشرفته پیش برین.
❗️دانشجویان دوره علم داده ۱ میتونن با پرداخت اختلاف هزینه، دوره جامع رو تهیه کنن.
#Courses
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👏7❤2👍1🔥1
#Machine_Learning
#SVM
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5👏2
مرز تصمیم، سطحیه که دادهها رو در فضای ویژگی به دو یا چند کلاس تقسیم میکنه. این مرز میتونه خطی یا غیرخطی باشه. تعیین مرز تصمیم صحیح برای دقت بالای مدل حیاتیه. مرزهای تصمیم نادرست میتونن منجر به بیشبرازش یا کمبرازش شن.
#Machine_Learning
#SVM
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4👨💻1
❓کوئیز شماره ۵۰: در SVM، تابع هسته (Kernel) چه نقشی برای تعیین مرز تصمیم داره؟
Anonymous Quiz
68%
تبدیل دادهها به فضای ویژگی با بعد بالاتر برای ایجاد قابلیت جداسازی غیرخطی.
5%
کاهش پیچیدگی محاسباتی در مدلهای با حجم دادههای زیاد.
18%
افزایش دقت طبقهبندی در دادههای با پیچیدگی بالا.
8%
استفاده از تکنیکهای آماری برای بهبود مدلسازی دادههای خطی و غیرخطی
😎6👍3❤1🤔1👌1
ماشین بردار پشتیبان (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
👍6❤3👨💻1
الگوریتم Support Vector Machine برای تشخیص الگوها در دادههای پیچیده و ایجاد حد تصمیم برای جدا کردن دستههای مختلف ایجاد شده. یکی از پارامترهای SVM، حاشیه (Margin) هست که نقش مهمی در کارایی این الگوریتم داره.
#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