مهم‌ترین الگوریتم‌های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش هشتم: k-میانگین

۱۱۰ بازدید
آخرین به‌روزرسانی: ۱۴ شهریور ۱۴۰۲
زمان مطالعه: ۱ دقیقه
مهم‌ترین الگوریتم‌های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش هشتم: k-میانگین

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

فهرست مطالب این نوشته

آیا تا به حال سعی کرده‌اید شکلی را بر اساس لکه‌های جوهر تشخیص دهید؟ روش k-میانگین نیز مشابه همین کار است. به شکل و پراکندگی داده‌ها نگاه می‌کنید و تشخیص می‌دهید که چه تعداد کلاستر/جمعیت وجود دارند.

روش k-میانگین چگونه خوشه‌ها را تشکیل می‌دهد؟

1- k-میانگین، k عدد نقطه برای هر خوشه به عنوان مرکز آن انتخاب می‌کند.

2- هر نقطه داده‌ای یک خوشه با نزدیک‌ترین مرکز تشکیل می‌دهد یعنی k عدد خوشه.

3- مرکز هر خوشه بر اساس اعضای موجود خوشه پیدا می‌شود. در اینجا مرکزهای جدیدی داریم.

4- از آنجا که مرکزهای جدیدی داریم مراحل 2 و 3 را مجدداً تکرار می‌کنیم. نزدیک‌ترین فاصله را برای هر نقطه داده‌ای از مرکزهای جدید محاسبه می‌کنیم و k خوشه جدید تشکیل می‌دهیم. این فرایند را تا زمانی که همگرایی رخ بدهد یعنی مرکزها تغییر نیابند تکرار می‌کنیم.

مقدار k را چگونه تشخیص بدهیم؟

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

می‌دانیم که وقتی تعداد خوشه‌ها افزایش می‌یابند این مقدار شروع به کاهش می‌کند. اگر یک نمودار ترسیم کنید می‌توانید ببینید که مجموع مربعات تفاضل‌ها تا مقدار معینی از k به مقدار زیادی کاهش می‌یابد و پس از آن کاهش بسیار کم می‌شود. در اینجا می‌توانیم عدد بهینه خوشه را پیدا کنیم.

کد پایتون

#Import Library

from sklearn.cluster import KMeans

#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset

# Create KNeighbors classifier object model

k_means = KMeans(n_clusters=3, random_state=0)

# Train the model using the training sets and check score

model.fit(X)

#Predict Output

predicted= model.predict(x_test)

کد R

library(cluster)

fit <- kmeans(X, 3) # 5 cluster solution

در بخش بعدی این سلسله مطالب شما را با الگوریتم جنگل تصادفی آشنا می‌کنیم. همچنین برای مشاهده  آموزش ویدیویی این مطلب می توانید از آموزش یادگیری غیر نظارت شده و خوشه بندی با الگوریتم k-Means استفاده کنید.

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *