❓کوئیز شماره ۴۲: چطور میشه توضیح داد که نایو بیز تا چه حد در برابر ویژگیهای نامربوط مقاومه و این موضوع چه تأثیری روی عملکرد کلیش داره؟
Anonymous Quiz
26%
مقاومت کامل، بدون تأثیر منفی بر دقت
46%
مقاومت متوسط، با کاهش جزئی در دقت
14%
حساسیت بالا، با کاهش قابل توجه در دقت
14%
حساسیت نسبی، با تغییرات پیچیده در عملکرد
😎6👌2❤1
- نایو بیز
- شبکههای بیزی
- میدانهای تصادفی مارکوف
- رگرسیون لجستیک
- ماشین بردار پشتیبان
- شبکههای عصبی سنتی
- KNN
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌8❤1👍1👨💻1
توی این کد انواع مختلف طبقهبندیکنندههای نایو بایز رو روی یک دیتاست پیاده سازی و عملکردها رو مقایسه کردیم. این کد برای هر مدل بیز ساده، دقت (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}")
MultinomialNB Accuracy: 0.95
BernoulliNB Accuracy: 0.28
Best Model: GaussianNB
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4👌2👏1
❓کوئیز شماره ۴۳: کدوم یک از پارامترهای زیر در مدلی که از sklearn.naive_bayes import GaussianNB ساخته میشه، وجود نداره؟
Anonymous Quiz
26%
var_smoothing
20%
priors
31%
alpha
23%
class_prior
😎7👍3🤔1
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👌2❤1👏1
https://t.iss.one/data_ml/139
#Weekend
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6❤1🔥1
Audio
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👌2👨💻1
الگوریتم یادگیری باناظر K-Nearest Neighbor(KNN) یا K نزدیکترین همسایه، برای حل مسائل طبقهبندی و رگرسیون به کار میره. این الگوریتم بر اساس این فرضیهست که دادههای مشابه توی فضای ویژگی نزدیک به هم دیگه قرار دارن.
الگوریتم KNN به دلیل غیر پارامتریک بودنش، یعنی اینکه هیچ فرضی راجع به توزیع دادهها نمیکنه (بر خلاف الگوریتمهای دیگه مثل GaussianNB که توزیع نرمال دادهها رو فرض میکنن)، توی مسائل واقعی بسیار قابل استفادهست. KNN یه الگوریتم مبتنی بر برداره و نزدیکترین همسایهها بر اساس روشهای محاسبه فاصله، مثل فاصله اقلیدسی انتخاب میشن.
این الگوریتم میتونه هم با دادههای عددی و هم با دادههای Categorical کار کنه، که این ویژگی KNN رو به گزینهای انعطافپذیر برای انواع مختلف مجموعههای داده تبدیل میکنه. K-NN نسبت به بقیه الگوریتمها به نویز و دادههای خارج از محدوده (outliers) کمتر حساسه.
توی تصویر، یه نمودار دو بعدی و دادههایی با دو طبقهبندی نشون داده شدن. دسته اول با رنگ قرمز، دسته دوم رنگ آبی و یه داده جدید (new data point) که هنوز به هیچ کدوم از دستهها اختصاص داده نشده وجود داره.
براساس الگوریتم KNN، برای طبقهبندی داده جدید، ما به دنبال نزدیکترین همسایگان به این نقطه توی فضای ویژگی هستیم. برای مثال، اگه K رو برابر 3 در نظر بگیریم، سه تا از نزدیکترین همسایهها به نقطه جدید رو در نظر میگیریم و براساس فاصله این سه همسایه، نقطه جدید رو طبقهبندی میکنیم.
مقدار 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 استاندارد وجود نداره. این مقدار بسته به دیتاست متفاوته اما به طور کلی، هدف اصلی حفظ k در حدیه که:
- کوچک باشه تا نمونههای سایر کلاسها رو حذف کنه اما
- به اندازه کافی بزرگ باشه تا هرگونه نویز توی دادهها رو به حداقل برسونه.
یک راه برای جستجوی مقدار بهینه این پارامتر، Elbow method هست که شامل ایجاد یک حلقه for هست که مدلهای مختلف KNN رو با مقادیر k مختلف آموزش میده، و بعد از مدلی که بالاترین دقت رو داره، استفاده میکنه.
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3👨💻1
توی K نزدیکترین همسایه، بیشترین هزینه محاسباتی برای فاز پیشبینی هست، جایی که الگوریتم باید K نزدیکترین همسایه به یک نقطه داده جدید رو شناسایی کنه.
الگوریتم K-NN باید برای هر نقطهای که مورد بررسی قرار میگیره، فاصلهاش رو با تمام n نقطه دیگه دادهها حساب کنه و برای این محاسبه، باید از تمام d ویژگیهای هر نقطه عبور کنه (O(n * d))، در نتیجه پیچیدگی محاسباتی زیادی داره.
#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 یه الگوریتم خوشهبندیه که سعی میکنه مجموعهای از نقاط رو به k مجموعه تقسیم کنه؛ به طوری که نقاط هر خوشه نزدیک به هم باشن و بدون نظارته.
الگوریتم KNN یه الگوریتم طبقهبندی (یا رگرسیون) هست که برای تعیین طبقهبندی یه نقطه، طبقهبندی k نزدیکترین نقطه رو ترکیب میکنه. باناظره چون سعی میکنه یه نقطه رو بر اساس طبقهبندی شناخته شده سایر نقاط طبقهبندی کنه.
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌9❤1👏1
درخت 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)
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👨💻2❤1👍1
❓کوئیز شماره ۴۶: توی جستجوی نزدیکترین همسایه با استفاده از درخت 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