سورس کد الگوریتم خوشه بندی Kmeans با متلب
در این پست سورس کد الگوریتم خوشه بندی Kmeans یا روش کامینز را آماده کرده ایم که یکی از روش های خوشه بندی داده ها در داده کاوی می باشد. در ادامه به معرفی این الگوریتم پرداخته و فیلم و تصاویری از خروجی آن قرار داده شده است.
الگوریتم خوشه بندی Kmeans یکی از روش اساسی دیگر خوشه بندى ها مثل خوشه بندى فازى به شمار می رود و روشى مسطح و انحصارى خوانده مى شود. شکل هاى مختلفى براى الگوریتم Kmeans ارائه شده اما تمامی آنها از یک روال تکراری برخوردار می باشند که براى تعدادى از خوشه ها که ثابت هستن، سعى می کنند تا موراد گفته شده در توضیحات زیر را تخمین بزنند:
- بدست آوردن قسمتی به عنوان وسط خوشه ها که این قسمت ها همان میانگین قسمت های متعلق به هر کدام از خوشه می باشند.
- نسبت دادن هر یک از نمونه داده ها به یک خوشه، که آن داده کوتاه ترین فاصله را تا نقطه ی مرکز آن خوشه داشته باشد.
توضیحات بیشتر، فیلم و تصاویری از خروجی الگوریتم خوشه بندی Kmeans در ادامه مطلب.
در ساده ترین این روش، در مرحله اول نقاطى به طور رندم به تعداد خوشه هاى مورد نیاز انتخاب شده و با در نظر گرفتن میزان شباهت، به یکى از این خوشه ها، در داده ها نسبت داده مى شوند که از این طریق خوشه هاى جدید به دست می آیند.
این کار را مى توانیم در هر بار از تکرار، با میانگین گرفتن از داده ها نقاط مراکزی جدیدى برایشان محاسبه کنیم و دوباره داده ها را به خوشه هاى جدید نسبت دهیم. روند فوق، تا زمانى که تغییرى در داده ها ایجاد می شود، ادامه می یابد.
قسمتی از کدهای الگوریتم خوشه بندی Kmeans در متلب:
جهت دریافت کد کامل این برنامه لطفا از قسمت خرید محصول اقدام کنید
clear all;
close all;
Data=[0 0 1 1 1 2 2 3 6 6 7 7 7 8 8 8 8 9 9 9
۰ ۱ ۰ ۱ ۲ ۱ ۲ ۲ ۶ ۷ ۶ ۷ ۸ ۶ ۷ ۸ ۹ ۷ ۸ ۹;];
[DataRow,DataColumn]=size(Data);
Step=10;
NumKind=2;
Center=Data(:,1:NumKind);
[KindData,KindNum]=Clustering(Center,Data);
NewCenter=CaculateCenter(KindData,KindNum,DataRow);
while (sum(sum(NewCenter~=Center))) & Step
Center=NewCenter;
[KindData,KindNum]=Clustering(Center,Data);
NewCenter=CaculateCenter(KindData,KindNum,DataRow);
Step=Step-1;
end
تصویر خروجی ۲:
مشاهده ویدئو در این باره
من یک سری دیتا دارم می خوام با الگوریتم Kmeans خوشه بندیشون کنم لطفا میشه کمی راهنماییم کنین ؟
لطفا دقیقا چیزی که می خواهید انجام بشه را توی ایمیل مطرح کنید بررسی کنیم
سلام محاسبه دقت و باز خورد در الگوريتم kmeans می خواستم بدونم که چه جوری محاسبه می شه؟
سلام . ممنون از مطلب مفیدتون. من یه سوالی دارم میخواستم بدونم معیار خوشه بندی داده ها رو چطور میتونم تعیین کنم؟ یعنی معیار من صرفا فاصله نباشه. میخوام طوری خوشه بندی کنم که داده ها ی هر کلاستر با هم یه خط راست تشکیل بدن. میشه لطفا راهنماییم کنید؟
میخوام یک کوانتیزه کننده غیر یکنواخت با الگوریتم kmeans برای 8بیت طراحی کنم . میشه راهنماییم کنید؟