جستجو برای:
سبد خرید 0
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما

ورود

گذرواژه خود را فراموش کرده اید؟

ثبت نام

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در سیاست حفظ حریم خصوصی ما شرح داده می شود مورد استفاده قرار می گیرد.

هوش مصنوعی رضوان
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما
ورود / ثبت نام
0

وبلاگ

هوش مصنوعی رضوان > فایل های آموزشی رایگان > پیاده سازی الگوریتم k-means در متلب

پیاده سازی الگوریتم k-means در متلب

فایل های آموزشی رایگان

توضیحات ویدئو

الگوریتم K-Means یک الگوریتم خوشه‌بندی است که در بسیاری از مسائل مربوط به تجزیه و تحلیل داده‌ها و بینایی ماشین مورد استفاده قرار می‌گیرد. این الگوریتم به شما امکان می‌دهد داده‌ها را به چندین خوشه تقسیم کنید، به طوری که داده‌های هر خوشه به یکدیگر شبیه باشند و داده‌های مختلف در خوشه‌های متفاوت قرار بگیرند. در ادامه، سازوکار الگوریتم KMeans و نحوه تنظیمات آن را توضیح می‌دهیم.
 
سازوکار الگوریتم K-Means به این صورت است که ابتدا تعداد مشخصی خوشه (که با K نمایش داده می‌شود) را انتخاب می‌کنید. سپس مراکز اولیه برای این خوشه‌ها را به صورت تصادفی انتخاب می‌کنید. در مرحله بعدی، برای هر نقطه‌ی داده، مرکز نزدیک‌ترین خوشه را محاسبه می‌کنید و نقطه را به آن خوشه اختصاص می‌دهید. سپس مراکز خوشه‌ها بروزرسانی می‌شوند و دوباره مراکز نزدیک‌ترین خوشه برای هر نقطه محاسبه می‌شود و نقاط به خوشه‌ها اختصاص داده می‌شوند. این فرآیند تا زمانی ادامه پیدا می‌کند که مراکز دیگر تغییر نکنند یا یک شرط توقف دیگر برقرار شود. در نهایت، داده‌ها به خوشه‌های مختلف تقسیم می‌شوند و خوشه‌ها متقارن و جدا از یکدیگر خواهند بود.
الگوریتم KMeans در بسیاری از حوزه‌ها و مسائل استفاده می‌شود. برخی از کاربردهای آن عبارتند از:
– تجزیه‌ و تحلیل داده‌ها و دسته‌بندی آن‌ها بر اساس ویژگی‌های مختلف.
– تجزیه تصاویر و بازسازی تصاویر فشرده شده.
– کاهش بعد داده‌ها و استخراج ویژگی‌های مهم.
– تجزیه تصاویر پزشکی و تشخیص بیماری‌ها.
– تجزیه‌ و تحلیل متن و دسته‌بندی سند‌ها.

کدهای پروژه

clc;
clear all;
close all;
 
%%
x1=imread(‘C:\Users\98915\Desktop\matlab poroje\1.jpg’);
x=imresize(x1,[300,300]);
imshow(x);
 
%%
x=double(x);
 [m,n]=size(x);
len=m;
 
%%
k=2;
m=zeros(k,1);
mm=zeros(k,2);
 
%%
for i=1:k
    m(i,1)=x(randi(len-1),randi(len-1));
end
 
%%
x(:,:,3)=0;
x2=x;
 
%%
temp=zeros(1,k);
s=0;
epoch=0;
while s==0
    epoch=epoch+1;
    for i=1 :len
        for i2=1 :len
        for j=1:k
            temp(j)=sqrt(abs(m(j,1)-x(i,i2))^2);
        end
        z1=find(temp==min(temp));
        x(i,i2,3)=z1(1);
        end
    end
   
    %%
    for i=1:len
        for i2=1:len
            mm(x(i,i2,3),1)=mm(x(i,i2,3),1)+x(i,i2);
            %calculet the numeber of pixle in each cluster
            mm(x(i,i2,3),2)=mm(x(i,i2,3),2)+1;
        end
    end
    for l=1:k
        m(l,1)=mm(l,1)/mm(l,2);
    end
   
    %% 
    if(x==x2)
        s=1;
    else
        x2=x;
    end
   
end
 
for i=1:len
    for i2=1:len
        x2(i,i2)=x(i,i2,3)*50;
    end
end
x2(:,:,2:3)=[];
figure
imshow(uint8(x2));
در کد ارائه شده، ابتدا تصویر ورودی خوانده می‌شود (`imread`) و با استفاده از دستور `imresize` به ابعاد مورد نظر تغییر اندازه می‌دهد. سپس تصویر ورودی به فرمت `double` تبدیل می‌شود.
در خطوط بعدی، تنظیمات اولیه الگوریتم K-Means انجام می‌شود. تعداد خوشه‌ها (K) را به 2 تنظیم می‌کنید و متغیرهای `m` و `mm` برای ذخیره مراکز خوشه‌ها و مجموع نقاط هر خوشه ایجاد می‌شوند.
در ادامه، مراکز اولیه برای خوشه‌ها به صورت تصادفی انتخاب می‌شوند. سپس کانال آبی تصویر (x(:,:,3))که برای ذخیره خوشه‌ها استفاده می‌شود، صفر می‌شود.
در قسمت بعدی از کد، یک حلقه وجود دارد که تا زمانی که شرط توقف برقرار نشود، ادامه پیدا می‌کند. در هر مرحله از حلقه، برای هر پیکسل تصویر، فاصله آن با مراکز خوشه‌ها محاسبه می‌شود و نزدیک‌ترین مرکز را پیدا می‌کنیم. سپس نقطه را به خوشه متناظر آن اختصاص می‌دهیم و این عمل را برای تمام پیکسل‌ها انجام می‌دهیم. سپس مراکز خوشه‌ها بروزرسانی می‌شوند و دوباره مرحله قبل تکرار می‌شود.
در پایان حلقه، تصویر نهایی به صورت خوشه‌ها نمایش داده می‌شود، که با ضرب هر خوشه در 50 بر روی تصویر انجام می‌شود. در نهایت، تصویر تغییر یافته را با استفاده از `imshow` نمایش می‌دهیم.
 
توجه: بخش ابتدایی ویدئو، از روی پاورپوینت ارائه می‌شود که به دلیل مشکلاتی، اسلایدها قابل مشاهده نیست. انشالله در اولین فرصت اصلاح خواهند شد.
 
امیدواریم این پروژه برای شما مفید و کاربردی واقع شده باشد. هدف آکادمی هوش مصنوعی رضوان، به اشتراک ‌گذاری تجربیاتی ارزشمند در زمینه پردازش تصویر و هوش مصنوعی با شما مخاطب ارجمند است. لطفا از سایر آموزش‌های رایگان و دوره‌های آموزشی ما دیدن و ما را در شبکه‌های اجتماعی دنبال فرمایید.
قبلی تشخیص چهره با الگوریتم ویولاجونز در متلب
بعدی تنظیم شدت روشنایی تصویر در متلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • فایل های آموزشی رایگان
  • مقالات
دسته‌های محصولات
  • دوره ها
  • عمومی
نوشته‌های تازه
  • تحولی نوین در صنعت بیمه با هوش مصنوعی
  • سیستم‌های توصیه‌گر: راهنمای جامع
  • ربات هوش مصنوعی چیست؟ اشتراکات و کاربردهای رباتیک و هوش مصنوعی
  • تعریف هوش مصنوعی در زنجیره تأمین
  • هوش مصنوعی احساسی: درک و تحلیل احساسات انسانی
درباره ما

هدف ما آموزش هوش مصنوعی با استفاده از پایتون و متلب می باشد تا بتوانیم موارد کاربردی آن را به شما عزیزان آموزش دهیم.

دسترسی سریع
  • دوره ها
  • تماس با ما
    نماد ها
    کلیه حقوق مادی و معنوی این سایت متعلق به هوش مصنوعی رضوان می‌باشد.
    اشتراک گذاری در شبکه های اجتماعی
    ارسال به ایمیل
    https://airezvan.com/?p=9382
    دسته بندی دوره ها
    دسته بندی بلاگ
    دوره های من
    دسته بندی دوره ها

    دوره ها

    • 3 دوره
    دسته بندی بلاگ

    فایل های آموزشی رایگان

    • 32 نوشته

    مقالات

    • 56 نوشته
    دوره های من
    برای مشاهده خریدهای خود باید وارد حساب کاربری خود شوید
    Facebook Twitter Youtube Instagram Whatsapp
    مرورگر شما از HTML5 پشتیبانی نمی کند.