آموزش یادگیری ماشین 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...

КОМЕНТАРІ • 55

  • @amirrezazare3503
    @amirrezazare3503 2 місяці тому +1

    ممنون از اینکه وقت میذارید و خلاصه و باکیفیت آموزش میدید

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  2 місяці тому

      خواهش میکنم
      خوشحالم که از آموزشها راضی هستین
      جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین

  • @aminirani6337
    @aminirani6337 Місяць тому +1

    ممنون از اموزش عالی.
    برای الگوریتم های Hierarchical Clustering Algorithm و DBSCAN Algorithm اموزشی بزارین.

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  Місяць тому +1

      خواهش میکنم
      خوشحالم که از آموزشها راضی هستین
      جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین
      حتما سعی میکنم موارد ذکر شده رو توی برنامه قرار بدم

  • @fredh3152
    @fredh3152 Місяць тому +1

    عالی

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  Місяць тому +1

      خواهش میکنم
      خوشحالم که از آموزشها راضی هستین
      جهت تهیه این آموزشها زحمت زیادی کشیده شده، ممنون میشم اگر حس میکنین مفید هستن با دوستانتون به اشتراک بذارین

  • @salarghaffarian4914
    @salarghaffarian4914 4 місяці тому +1

    Thanks for putting all the effort to create such a valuable content. Keep the great work going on. That was awesome.

  • @mohammadsadeghi1636
    @mohammadsadeghi1636 4 місяці тому +1

    perfectooooooooooooooooooo

  • @ItAmozesh
    @ItAmozesh 7 місяців тому +1

    عالی بود👌👌

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому +1

      خوشحالم که از آموزشها راضی هستین

  • @farahmand741
    @farahmand741 7 місяців тому +2

    توضیح تان خیلی عالی است

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому +1

      خواهش میکنم. خیلی خوشحالم که از آموزشها راضی هستین
      ممنون بابت حمایتتون

  • @MohammadrezaAlikhani
    @MohammadrezaAlikhani 5 місяців тому +1

    Mamnoon.

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  4 місяці тому

      خواهش میکنم، خیلی خوشحالم که از آموزشها راضی هستین
      جهت تهیه این آموزشها زحمت زیادی کشیده شده، به همین خاطر ممنون میشم اگر از آموزشها راضی هستین، با دوستانتون به اشتراک بذارین

  • @user-nb4fx5fd3i
    @user-nb4fx5fd3i 7 місяців тому +2

    عالی، منتظر جلسه بعدی هستم. دستتون درد نکنه

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому

      خواهش میکنم، خوشحالم که از آموزشها راضی هستین

  • @alirezagx26
    @alirezagx26 5 місяців тому +1

    👌great course

  • @MaryamFaramarz
    @MaryamFaramarz 8 місяців тому +1

    perfect

  • @saeedmo9045
    @saeedmo9045 3 місяці тому +1

    Thanks!

    • @saeedmo9045
      @saeedmo9045 3 місяці тому

      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.

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  3 місяці тому

      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

  • @user-bd1qu3tv8s
    @user-bd1qu3tv8s 4 місяці тому +1

    💯💯💯💯💯💯💯💯

  • @marziehtavakoli5332
    @marziehtavakoli5332 6 місяців тому +1

    👌👌👌

  • @kiankianpisheh7629
    @kiankianpisheh7629 8 місяців тому +1

    💯

  • @atf-yh8uz
    @atf-yh8uz 8 місяців тому +1

    ممنون بابت ویدیوی خوبتون
    عالی توضیح میدین

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому

      خواهش میکنم. خیلی خوشحالم که از آموزشها راضی هستین
      ممنون بابت حمایتتون

  • @minamohamadi291
    @minamohamadi291 6 місяців тому +1

    💚💚💚

  • @Sara_MUA
    @Sara_MUA 8 місяців тому +1

    خیلی مفید بود، مرسی
    ببخشید چند جلسه دیگه از دوره مونده؟

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  8 місяців тому

      خوشحالم که از آموزشها راضی هستین
      یک جلسه دیگه از دوره مونده

  • @hosseindr.askari6161
    @hosseindr.askari6161 7 місяців тому +1

    Thank you for taking the time to create such high quality video content.

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому +1

      No problem, happy it is helpful!
      Thank you for the support!

  • @amirrezaroohbakhsh4578
    @amirrezaroohbakhsh4578 7 місяців тому +1

    من ار دوره ماشین لرنینگ شما بیشتر چیز یاد گرفتم تا دوره های یودمی و کورسرا

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому

      لطف دارین
      خوشحالم که از آموزشها راضی هستین
      ممنون میشم اگر از آموزشها راضی هستین، با دوستانتون به اشتراک بذارین

  • @abolfazl9374
    @abolfazl9374 5 місяців тому +1

    سلام خیلی ممنون بابت آموزشتون
    چطوری میتونم به گیف ها دسترسی داشته باشم

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  4 місяці тому +1

      خواهش میکنم دوست عزیز
      متاسفانه گیف ها در حال حاضر در دسترس نیستند. شاید در آینده به اشتراک گذاشتم

  • @mohsenhasanzadeh1422
    @mohsenhasanzadeh1422 4 місяці тому +1

    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?

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  4 місяці тому +1

      in clustering, you should consider that specifying the wrong number of classes would increase the error!

  • @farahmand741
    @farahmand741 7 місяців тому +1

    دو تا از ویدیو تان خارج از دسترس مخفی شده نشان نمیدهد

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  7 місяців тому +1

      اون ویدیوها در صف انتشار هستند و هنوز کامل نشدن

    • @farahmand741
      @farahmand741 7 місяців тому

      @@TechWithHasanAbbasi بسیار خب منتظر هستیم

  • @MPar-dn2qv
    @MPar-dn2qv 6 місяців тому +1

    سلام
    اینجا هم یک تفاوتی در جوابی که من گرفتم با مال شما وجود داره
    اول اینکه بعد از اجرای 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 آخر رو حذف کردم) و بعد عینا مثل مال شما درست نمایش داد

    • @MPar-dn2qv
      @MPar-dn2qv 6 місяців тому +1

      خب حالا به تفاوت دومی پی بردم یعنی که نوشته بودم label= بجای labels= که تصحیح کردم و بعد درست جواب داد لی جالب اینکه حالا وقتی
      c=lab مینویسم هم labels رو تو پنجره نشون میده و هم label رو که هردو هم جواب میده که تنها فرقشون اینه که labels مثل مال شما هر کلاستر یک رنگه ولی با label هر کلاستر سه رنگ قاطیه!

    • @MPar-dn2qv
      @MPar-dn2qv 6 місяців тому +1

      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!

    • @MPar-dn2qv
      @MPar-dn2qv 6 місяців тому +1

      خلاصه کنم این دو سه تا کامنت بالا رو
      هروقت که این دو قسمت کدهای زیر رو که اجرا میکنم
      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)

    • @TechWithHasanAbbasi
      @TechWithHasanAbbasi  5 місяців тому

      Perfect, glad to hear you could figure it !

  • @user-qy3xr8lc4c
    @user-qy3xr8lc4c 8 місяців тому +1

    👌👌👌