الگوریتم K-Means یک الگوریتم خوشهبندی است که در بسیاری از مسائل مربوط به تجزیه و تحلیل دادهها و بینایی ماشین مورد استفاده قرار میگیرد. این الگوریتم به شما امکان میدهد دادهها را به چندین خوشه تقسیم کنید، به طوری که دادههای هر خوشه به یکدیگر شبیه باشند و دادههای مختلف در خوشههای متفاوت قرار بگیرند. در ادامه، سازوکار الگوریتم KMeans و نحوه تنظیمات آن را توضیح میدهیم.
سازوکار الگوریتم K-Means به این صورت است که ابتدا تعداد مشخصی خوشه (که با K نمایش داده میشود) را انتخاب میکنید. سپس مراکز اولیه برای این خوشهها را به صورت تصادفی انتخاب میکنید. در مرحله بعدی، برای هر نقطهی داده، مرکز نزدیکترین خوشه را محاسبه میکنید و نقطه را به آن خوشه اختصاص میدهید. سپس مراکز خوشهها بروزرسانی میشوند و دوباره مراکز نزدیکترین خوشه برای هر نقطه محاسبه میشود و نقاط به خوشهها اختصاص داده میشوند. این فرآیند تا زمانی ادامه پیدا میکند که مراکز دیگر تغییر نکنند یا یک شرط توقف دیگر برقرار شود. در نهایت، دادهها به خوشههای مختلف تقسیم میشوند و خوشهها متقارن و جدا از یکدیگر خواهند بود.
الگوریتم KMeans در بسیاری از حوزهها و مسائل استفاده میشود. برخی از کاربردهای آن عبارتند از:
– تجزیه و تحلیل دادهها و دستهبندی آنها بر اساس ویژگیهای مختلف.
در کد ارائه شده، ابتدا تصویر ورودی خوانده میشود (`imread`) و با استفاده از دستور `imresize` به ابعاد مورد نظر تغییر اندازه میدهد. سپس تصویر ورودی به فرمت `double` تبدیل میشود.
در خطوط بعدی، تنظیمات اولیه الگوریتم K-Means انجام میشود. تعداد خوشهها (K) را به 2 تنظیم میکنید و متغیرهای `m` و `mm` برای ذخیره مراکز خوشهها و مجموع نقاط هر خوشه ایجاد میشوند.
در ادامه، مراکز اولیه برای خوشهها به صورت تصادفی انتخاب میشوند. سپس کانال آبی تصویر (x(:,:,3))که برای ذخیره خوشهها استفاده میشود، صفر میشود.
در قسمت بعدی از کد، یک حلقه وجود دارد که تا زمانی که شرط توقف برقرار نشود، ادامه پیدا میکند. در هر مرحله از حلقه، برای هر پیکسل تصویر، فاصله آن با مراکز خوشهها محاسبه میشود و نزدیکترین مرکز را پیدا میکنیم. سپس نقطه را به خوشه متناظر آن اختصاص میدهیم و این عمل را برای تمام پیکسلها انجام میدهیم. سپس مراکز خوشهها بروزرسانی میشوند و دوباره مرحله قبل تکرار میشود.
در پایان حلقه، تصویر نهایی به صورت خوشهها نمایش داده میشود، که با ضرب هر خوشه در 50 بر روی تصویر انجام میشود. در نهایت، تصویر تغییر یافته را با استفاده از `imshow` نمایش میدهیم.
توجه: بخش ابتدایی ویدئو، از روی پاورپوینت ارائه میشود که به دلیل مشکلاتی، اسلایدها قابل مشاهده نیست. انشالله در اولین فرصت اصلاح خواهند شد.
امیدواریم این پروژه برای شما مفید و کاربردی واقع شده باشد. هدف آکادمی هوش مصنوعی رضوان، به اشتراک گذاری تجربیاتی ارزشمند در زمینه پردازش تصویر و هوش مصنوعی با شما مخاطب ارجمند است. لطفا از سایر آموزشهای رایگان و دورههای آموزشی ما دیدن و ما را در شبکههای اجتماعی دنبال فرمایید.
دیدگاهتان را بنویسید