آموزش یادگیری ماشین 17 - آشنایی و پیاده سازی الگوریتم K-means برای خوشه بندی (clustering) بی نظارت
Вставка
- Опубліковано 9 жов 2023
- قسمت هفدهم دوره آموزش یادگیری ماشین از مقدماتی تا پیشرفته
.
توی جلسات قبل، الگوریتم های با نظارت (supervised) رو با هم بررسی کردیم. یاد گرفتیم که این الگوریتمها برای آموزش (training) نیازمند دیتاست با لیبل هستند.
از این جلسه کار با الگوریتمهای بی نظارت (unsupervised) رو شروع میکنیم.
توی این جلسه، الگوریتم K-means که یکی از مهمترین الگوریتم های گروه بی نظارت هست رو با هم بررسی میکنیم. یاد میگیریم این الگوریتم چطور کار میکنه و چطور با استفاده از تکرارهای متوالی، خوشه بندی (clustering) انجام میده. بعد با استفاده از متد make_blobs از کتابخانه sklearn دیتاست درست میکنیم و با استفاده از الگوریتم k-means اون رو خوشه بندی میکنیم.
.
لینک جلسات مرتبط با این دوره
جلسه پیش پردازش دیتاست دیابت • آموزش یادگیری ماشین 9 ...
جلسه آشنایی با معیارهای ارزیابی مختلف (accuracy, precision, recall) • آموزش یادگیری ماشین 8...
ساخت محیط مجازی (virtual environment) دوره • دوره یادگیری ماشین 3 -...
آشنایی و کار با کتابخانه numpy در 20 دقیقه • کتابخانه های پرکاربرد...
آشنایی و کار با کتابخانه pandas در 20 دقیقه • کتابخانه های پرکاربر...
آشنایی و کار با کتابخانه matplotlib در 10 دقیقه • کتابخانه های پرکاربر...
نحوه نصب کتابخانه ها و پکیجها در پایتون • آموزش پایتون قسمت 13 ...
دوره آموزش پایتون از مقدماتی تا پیشرفته • دوره کامل آموزش برنام...
ممنون میشم اگر ویدیوها آموزنده هست اونها رو لایک کنید، توی کانالمون سابسکرایب کنید و اونها رو با دیگران هم به اشتراک بذارین.
لطفا از دانلود ویدیوها اجتناب کنین، برای این ویدیوها زحمت زیادی کشیده شده (من راضی نیستم که اونها رو دانلود کنید) و به همین دلیل تنها راه استفاده رایگان، تماشای آنلاین هست.
لینک کانال تلگرام t.me/techwithhasanabbasi
اگر برای ورود به دنیای برنامه نویسی و آموزش آن به صورت خودآموز نیاز به راهنمایی و مشاوره دارید، میتونین از طریق لینک زیر جهت رزرو زمان مناسب اقدام کنید تا با هم در موردش صحبت کنیم و یه شروع قدرتمند داشته باشین.
calendly.com/techwithhasanabb...
ممنون از اینکه وقت میذارید و خلاصه و باکیفیت آموزش میدید
خواهش میکنم
خوشحالم که از آموزشها راضی هستین
جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین
ممنون از اموزش عالی.
برای الگوریتم های Hierarchical Clustering Algorithm و DBSCAN Algorithm اموزشی بزارین.
خواهش میکنم
خوشحالم که از آموزشها راضی هستین
جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین
حتما سعی میکنم موارد ذکر شده رو توی برنامه قرار بدم
عالی
خواهش میکنم
خوشحالم که از آموزشها راضی هستین
جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین
Thanks for putting all the effort to create such a valuable content. Keep the great work going on. That was awesome.
Glad you enjoyed it!
perfectooooooooooooooooooo
Thank you for the support!
عالی بود👌👌
خوشحالم که از آموزشها راضی هستین
توضیح تان خیلی عالی است
خواهش میکنم. خیلی خوشحالم که از آموزشها راضی هستین
ممنون بابت حمایتتون
Mamnoon.
خواهش میکنم، خیلی خوشحالم که از آموزشها راضی هستین
جهت تهیه این آموزشها زحمت زیادی کشیده شده، به همین خاطر ممنون میشم اگر از آموزشها راضی هستین، با دوستانتون به اشتراک بذارین
عالی، منتظر جلسه بعدی هستم. دستتون درد نکنه
خواهش میکنم، خوشحالم که از آموزشها راضی هستین
👌great course
Glad you think so!
perfect
Thank you for your support!
Thanks!
great work. I can't wait to see Time Series Forecasting and Reinforcement learning sections. please update me if you are planning to cover these subjects.
Thank you for your support!
We will have contents for time series and reinforcement learning in the near future!
Let me know the subjects that you think will be useful for all subscribers
💯💯💯💯💯💯💯💯
thank you for your support!
👌👌👌
🙏
💯
Thank you for your support!
ممنون بابت ویدیوی خوبتون
عالی توضیح میدین
خواهش میکنم. خیلی خوشحالم که از آموزشها راضی هستین
ممنون بابت حمایتتون
💚💚💚
thank you for your support
خیلی مفید بود، مرسی
ببخشید چند جلسه دیگه از دوره مونده؟
خوشحالم که از آموزشها راضی هستین
یک جلسه دیگه از دوره مونده
Thank you for taking the time to create such high quality video content.
No problem, happy it is helpful!
Thank you for the support!
من ار دوره ماشین لرنینگ شما بیشتر چیز یاد گرفتم تا دوره های یودمی و کورسرا
لطف دارین
خوشحالم که از آموزشها راضی هستین
ممنون میشم اگر از آموزشها راضی هستین، با دوستانتون به اشتراک بذارین
سلام خیلی ممنون بابت آموزشتون
چطوری میتونم به گیف ها دسترسی داشته باشم
خواهش میکنم دوست عزیز
متاسفانه گیف ها در حال حاضر در دسترس نیستند. شاید در آینده به اشتراک گذاشتم
Hi,
Thank you
It was great,
But I could not understand why when I change the n_features to 3 or 4 it does not works?
in clustering, you should consider that specifying the wrong number of classes would increase the error!
دو تا از ویدیو تان خارج از دسترس مخفی شده نشان نمیدهد
اون ویدیوها در صف انتشار هستند و هنوز کامل نشدن
@@TechWithHasanAbbasi بسیار خب منتظر هستیم
سلام
اینجا هم یک تفاوتی در جوابی که من گرفتم با مال شما وجود داره
اول اینکه بعد از اجرای plt.show() دو کلاستر (دو دسته) گرفتم نه سه تا
در نتیجه اومدم جای n_features=2 و centers=3 رو باهم عوض کردم!
باینصورت:
x, y = make_blobs(n_samples=300, centers=3 , n_features=2)
و بعد مثل شما 3 دسته گرفتم که محل قرار گرفتانشون نه دقیقا مثل شما ولی شبیه مال شما بود
و بعد وقتی فرمان plt.scatter(x[:, 0], x[:, 1], c=labels) , و بعدش plt.show() رو اجرا کردم بهم Error داد!
name 'labels' is not defined
ولی توجه کردم که وقتی c=lab رو مینویسم خودش پنجره باز میکنه و label رو پیشنهاد میده نه labels و منم اون رو نوشتم (s آخر رو حذف کردم) و بعد عینا مثل مال شما درست نمایش داد
خب حالا به تفاوت دومی پی بردم یعنی که نوشته بودم label= بجای labels= که تصحیح کردم و بعد درست جواب داد لی جالب اینکه حالا وقتی
c=lab مینویسم هم labels رو تو پنجره نشون میده و هم label رو که هردو هم جواب میده که تنها فرقشون اینه که labels مثل مال شما هر کلاستر یک رنگه ولی با label هر کلاستر سه رنگ قاطیه!
Ok I write in English this time since this editor doesn't do a good job when English mixed with Farsi.
I ran the commands from beginning again as exactly like yours and got 2 clusters again but then I continued the rest of the commands and used label=model.labels and after I ran plt.show() I notcied that the 2 clusters are in fact 3 clusters but just 2 of them are kind of attached to each other because I see the cluster is divided in 2 in colors and each has a different center!
So I went back to the top of the codes and ran the
from sklearn.datasets import make_blobs
x, y = make_blobs(n_samples=300, n_features=2, centers=3)
and then
import matplotlib.pyplot as plt
plt.scatter(x[:, 0], x[:, 1], color='b')
plt.show()
again and this time it gave me 3 different clusters!
I tried this proces several times and got 2 and sometimes 3 clusters, however, the positions are different!
That is when I get 3 clusters and run the commands agan and I might get 3 clusters again but in a different positions
(that is one cluster for example is at the top left, next one in the middle right and the 3rd one at the bottom left and then next time the first cluster at the top right and the second and third at the bottom but one leftside the other right side.
But yet was kind of surprised why it works with both label and labels
So I all guessed it may be that this word label gone to the memory because I once written an the command label=model.labels_ so I made a new file and named it kmean2.ipynb and wrote all the commands exactly as you did and this time it gave me 3 clusters and then when I tried c=lab it didn't show label anymore and just labels!
And the rest went smooth like yours.
So I learned that the first 2 part of the commands gives a different positions of the 3 clusters and the second any variable that I define (like label=model.labels_ ) it goes into the memory on that file (and that file only) and if even you withdraw that variable it will still remain in the memory of that file!
خلاصه کنم این دو سه تا کامنت بالا رو
هروقت که این دو قسمت کدهای زیر رو که اجرا میکنم
from sklearn.datasets import make_blobs
x, y = make_blobs(n_samples=300, n_features=2, centers=3)
and then
import matplotlib.pyplot as plt
plt.scatter(x[:, 0], x[:, 1], color='b')
plt.show()
نتیجه مختلفی در شکل و محل قرار گرفتن کلاستر ها بدست میارم
یعنی که کلاسترها 3 تا هست ولی ممکنه 2 تا بنظر برسن
و بعد هم جاهاشون متغیره یعنی اینکه یبار ممکنه اولی سمت راست بالا، دومی سمت چپ وسط و سومی وسط پائین قرار بگیره و بار بعدی ممکنه اول بالا سمت چپ بالا دومی و سومی در یک ردیف و الی آخر.
و بعد مورد دیگه ای که توجه منو جلب کرد این بود که اگه یک متغییر رو در فایلی که دارید درش کار میکنید تعریف کنید
defining a variable
اون متغییر در حافظه اون فایل (و فقط اون فایل نه فایلهای دیگه) باقی میمونه حتی اگر شما دستور تعریف اون متغییر رو حذف کنید
( even if you delete the defining that variable command)
Perfect, glad to hear you could figure it !
👌👌👌
Thank you for your support!