سورس کد الگوریتم خوشه بندی Kmeans با متلب
در این پست سورس کد الگوریتم خوشه بندی Kmeans یا روش کامینز را آماده کرده ایم که یکی از روش های خوشه بندی داده ها در داده کاوی می باشد. در ادامه به معرفی این الگوریتم پرداخته و فیلم و تصاویری از خروجی آن قرار داده شده است.
الگوریتم خوشه بندی Kmeans يکی از روش اساسی دیگر خوشه بندى ها مثل خوشه بندى فازى به شمار می رود و روشى مسطح و انحصارى خوانده مى شود. شکل هاى مختلفى براى الگوریتم Kmeans ارائه شده اما تمامی آنها از یک روال تکراری برخوردار می باشند که براى تعدادى از خوشه ها که ثابت هستن، سعى می کنند تا موراد گفته شده در توضیحات زیر را تخمين بزنند:
- بدست آوردن قسمتی به عنوان وسط خوشه ها که اين قسمت ها همان ميانگين قسمت های متعلق به هر کدام از خوشه می باشند.
- نسبت دادن هر یک از نمونه داده ها به يک خوشه، که آن داده کوتاه ترین فاصله را تا نقطه ی مرکز آن خوشه داشته باشد.
توضیحات بیشتر، فیلم و تصاویری از خروجی الگوریتم خوشه بندی Kmeans در ادامه مطلب.
در ساده ترین این روش، در مرحله اول نقاطى به طور رندم به تعداد خوشه هاى مورد نياز انتخاب شده و با در نظر گرفتن ميزان شباهت، به يکى از اين خوشه ها، در داده ها نسبت داده مى شوند که از این طریق خوشه هاى جديد به دست می آیند.
این کار را مى توانیم در هر بار از تکرار، با ميانگين گرفتن از داده ها نقاط مراکزی جديدى برایشان محاسبه کنیم و دوباره داده ها را به خوشه هاى جديد نسبت دهیم. روند فوق، تا زمانى که تغييرى در داده ها ایجاد می شود، ادامه می یابد.
قسمتی از کدهای الگوریتم خوشه بندی Kmeans در متلب:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <span style="color: #ff0000;">جهت دریافت کد کامل این برنامه لطفا از قسمت خرید محصول اقدام کنید</span> 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 0 1 0 1 2 1 2 2 6 7 6 7 8 6 7 8 9 7 8 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 |
تصویر خروجی 2:
من یک سری دیتا دارم می خوام با الگوریتم Kmeans خوشه بندیشون کنم لطفا میشه کمی راهنماییم کنین ؟
لطفا دقیقا چیزی که می خواهید انجام بشه را توی ایمیل مطرح کنید بررسی کنیم
سلام محاسبه دقت و باز خورد در الگوريتم kmeans می خواستم بدونم که چه جوری محاسبه می شه؟
سلام . ممنون از مطلب مفیدتون. من یه سوالی دارم میخواستم بدونم معیار خوشه بندی داده ها رو چطور میتونم تعیین کنم؟ یعنی معیار من صرفا فاصله نباشه. میخوام طوری خوشه بندی کنم که داده ها ی هر کلاستر با هم یه خط راست تشکیل بدن. میشه لطفا راهنماییم کنید؟
میخوام یک کوانتیزه کننده غیر یکنواخت با الگوریتم kmeans برای 8بیت طراحی کنم . میشه راهنماییم کنید؟