الگوریتم K-Means
خوشهبندی که به آن یادگیری بدون ناظر نیز گفته میشود تعداد خوشهها در آن مشخص نیست. خوشهبندی در واقع یک عملیات غیرنظارتی میباشد. این عملیات هنگامی استفاده میشود که ما به دنبال یافتن گروههایی از دادههای مشابه میباشیم بدون اینکه از قبل یک پیشبینی در مورد شباهتهای موجود داشته باشیم. هر خوشه شامل مجموعهای از اشیاء دادهای است که به هم شبیه هستند اما با اشیاء خارج از آن متفاوت میباشند. یکی از روشهای معروف در زمینه خوشهبندی، الگوریتم K-Means میباشد [5]. الگوریتم K-Means علیرغم آنکه ساده است یک روش پایه برای بسیاری از روشهای خوشهبندی محسوب میشود. برای این الگوریتم شکلهای مختلفی بیان شده است. ولی همه آنها دارای روالی تکراری هستند که برای تعدادی ثابت از خوشهها سعی در تخمین موارد زیر دارند [5]:
· بدست آوردن نقاطی به عنوان مراکز خوشهها. این نقاط در واقع همان میانگین نقاط متعلق به هر خوشه هستند.
· نسبت دادن هر نمونه داده به یک خوشه که آن داده کمترین فاصله تا مرکز آن خوشه را دارا باشد.
الگوریتم K-Means ابتدا K عضو(که K تعداد خوشهها است) را به صورت تصادفی از میان N عضو انتخاب مینماید و آنها را به عنوان مراکز خوشهها در نظر میگیرد. سپس N-K عضو باقیمانده به نزدیکترین خوشه تخصیص مییابند. بعد از تخصیص همه اعضا مجدداً مراکز خوشهها محاسبه شده و اعضا با توجه به میزان نزدیکی (شباهت) به یکی از خوشهها تخصیص مییابند و این کار تا زمانی که مراکز خوشهها ثابت بمانند، ادامه مییابد. با تکرار همین روال میتوان در هر تکرار با میانگینگیری از دادهها مراکز جدیدی برای آنها محاسبه کرد و مجدداً دادهها را به خوشههای جدید نسبت داد.
الگوریتم K-Meansیکی از روشهای رایج خوشهبندی میباشد که علیرغم مزایای بسیار از جمله سرعت بالا و سهولت پیادهسازی، در دام بهینه محلی قرار نمیگیرد و میتواند جواب بهینه برای مسئه مورد نظر را تولید ذنماید. تابع هدف در الگوریتم K-Means طبق معادله(2-3) تعریف شده است.
برای اینکه بتوانیم دادهها را خوشهبندی کنیم باید بتوانیم میزان شباهت آنها را بدست آوریم. اینکار معمولاً به صورت غیرمستقیم انجام میشود، یعنی با استفاده از معیارهای اندازهگیری فاصله، میزان تفاوت بین دو شیء بدست میآید بطوریکه اشیاء شبیه به هم دارای فاصله کمتری خواهند بود. در معادله(2-3)، پارامتر k تعداد نقاط مراکز خوشهها است. هر نمونه داده به خوشهای که مرکز آن خوشه کمترین فاصله تا آن داده را داراست، نسبت داده میشود. و || || معیار فاصله نقطه x به cj (مرکز خوشة jام) است. برای مثال خوشهبندی برمبنای K-Means قصد داریم که دادههای جدول(2-4) را خوشهبندی کنیم. جدول(2-4)، شامل 8 نمونه است که شامل مقادیری مختلفی هستند.
جدول(2-4): نمایش نمونهها برای خوشهبندی
خوشهبندی |
Y |
X |
ردیف |
1 |
72 |
185 |
1 |
2 |
56 |
170 |
2 |
2 |
60 |
168 |
3 |
1 |
68 |
179 |
4 |
1 |
72 |
182 |
5 |
1 |
77 |
188 |
6 |
1 |
73 |
186 |
7 |
2 |
60 |
168 |
8 |
در ابتدا تعداد خوشهها را برابر دو درنظر میگیریم. یعنی خوشه k1(185,72) و k2(170,56) از جدول(2-5) را به عنوان مراکز دادهها انتخاب میکنیم.
جدول(2-5): انتخاب مراکز خوشهها به منظور خوشهبندی
Y |
X |
Cluster |
72 |
185 |
k1 |
56 |
170 |
k2 |
سپس برای پیدا کردن فاصله اقلیدسی بین نمونهها از معادله(2-4) استفاده میکنیم.
(2-4) |
|
سپس فاصله بین خوشهها با یکدیگر محاسبه میشود.
(2-5) |
|
(2-6) |
|
برمبنای فاصله بین مقادیر هر نمونه میتوان نوع خوشهها را تعیین میکنیم. نمونههایی که به عنوان مرکز خوشه انتخاب شدهاند باید محاسبه شوند و نوع خوشه آنها مشخص شود.
جدول(2-6): انتساب نمونهها به خوشهها
خوشهبندی |
Y |
X |
Cluster |
1 |
21.93 |
0 |
k1 |
2 |
0 |
21.93 |
k2 |
برای محاسبه نمونهها و انتساب آنها به یک خوشه از فاصله اقلیدسی استفاده میشود. برای انتساب نمونههای جدید به یک خوشه مشابه باید عمل مقایسه با مقدار خوشههای از پیش تعیین شده انجام گیرد و خوشهای که مقدار کمتری دارد نمونه جدید به آن انتساب داده میشود.
(168,60) |
|
|
[(170+168)/2=169] [(60+56)/2=58]→Update Cluster2 |
(179,68) |
|
|
[(185+179)/2=182] [(72+68)/2=70]→ Update Cluster1 |
(182,72) |
|
|
[(182+182)/2=182] [(70+72)/2=71]→ Update Cluster1 |
(188,77) |
|
|
[(182+188)/2=185] [(71+77)/2=74]→ Update Cluster1 |
(186,73) |
|
|
[(185+186)/2=185] [(74+73)/2=73]→ Update Cluster1 |
(165,60) |
|
|
[(168+165)/2=166] [(56+60)/2=58]→ Update Cluster1 |
در جدول(2-7)، بروزرسانی مرکز خوشهها نشان داده شده است. با محاسبه هر نمونه یک مقدار جدید برای مرکز خوشهها پیدا میشوند و مرکز خوشه بروزرسانی میشود. مرکز خوشهها بهینهترین نقطه را به منظور همبستگی بین نمونهها کشف میکند.
جدول(2-7): بروزرسانی مراکز خوشهها
Update |
Y |
X |
Cluster |
|
Y |
X |
|||
70 |
182 |
72 |
185 |
k1 |
71 |
182 |
|||
74 |
185 |
|||
73 |
185 |
|||
58 |
168 |
56 |
170 |
k2 |
58 |
166 |
در شکل(2-12)، نحوه خوشهبندی نمونهها با مرکزیت خوشه نشان داده شده است. در هر مرحله مرکز خوشه بروزرسانی میشود و برای نمونهها یک مقدار جدید به عنوان مرکز و فاصله بین دو خوشه در نظر گرفته میشود.
شکل(2-12): نمایش خوشهبندی نمونهها با مرکزیت خوشه
در شکل(2-12)، دادههای موجود در یک خوشه بیشترین نزدیکی را به هم دارند و دادههای موجود در دو خوشه متفاوت، بیشترین فاصله را با هم دارند.
الگویتم K-Means++
الگوریتم k-means++ [37] روشی برای انتخاب تصادفی مقادیر اولیه مراکز خوشهها در الگوریتم خوشهبندی k-means است. این الگوریتم در سال 2007 توسط دیوید آرتور و سرگئی واسیلویتسکی پیشنهاد شد. لذا الگوریتم K-means++ مراکز اولیه خوشهها را به صورت تصادفی انتخاب میکند.
جدول(2-8): مقایسه الگوریتم k-means و k-means++
k-means |
k-means++ |
1) یک مجموعه از نقاط داده X={x1,x2,…,xn} 2) تعداد خوشهها برابر k 3) محاسبه مراکز خوشهها C={c1,c2,…,ck}
4) فاصله از x به نزدیکترین مرکز در C برابر= d(x,C) 5) هدف تابع برازندگی مینیمم مقدار است. |
1) انتخاب اولین مرکز(c1) به صورت تصادفی در میان دادهها (x) 2) انتخاب مرکز جدید(ci)، انتخاب کردن برمبنای
پارامتر D(x) کوتاهترین فاصله از نقاط داده به نزدیکترین مرکز است. 3) تکرار مراحل به منظور یافتن k مرکز |
با سلام
تشکر بابت وبلاگ پر محتوا و کاربردیتون .بسار مفید بود
ما هم وبلاگی در زمینه سئو و طراحی سایت داریم
لطفا در صورت تمایل برای تبادل لینک دوطرفه با ما در ارتباط باشید
http://kianartco.bigsite.ir/