خوشه‌بندی کی-میانگین

**خوشه‌بندی کی-میانگین**  روشی در کمی‌سازی بردارهاست که در اصل از پردازش سیگنال گرفته شده و برای آنالیز خوشه‌بندی در داده‌کاوی محبوب است. *کی-میانگین* خوشه‌بندی با هدف تجزیه *<math>n </math>* مشاهدات به *<math>k </math>* خوشه است که در آن هر یک از مشاهدات متعلق به خوشهای با نزدیکترین میانگین آن است، این میانگین به عنوان پیش‌نمونه استفاده می‌شود. این به پارتیشن‌بندی داده‌های به یک دیاگرام ورونوی تبدیل می‌شود.

## تاریخچه الگوریتم
اصطلاح کی-میانگین  برای اولین بار توسط جیمز بی مک‌کوین (استاد دانشگاه کالیفرنیا) در سال ۱۹۶۷ مورد استفاده قرار گرفت، هرچند این ایده به هوگو استین‌هاوس در سال ۱۹۵۷ باز می‌گردد. این الگوریتم ابتدا توسط استوارت لویید در سال ۱۹۵۷ به عنوان یک تکنیک برای مدولاسیون کد پالس پیشنهاد شد و تا سال ۱۹۸۲ خارج از آزمایشگاه‌های بل به انتشار نرسید. فورجی در سال ۱۹۶۵ الگوریتمی مشابه را منتشر کرد، به همین دلیل این الگوریتم، **الگوریتم لویید-فورجی** نیز نامیده می‌شود.

## توضیحات
با توجه به مجموعه‌ای از مشاهدات (x_1, x_2, \cdots, x_n)  که در آن هر یک از مشاهدات یک بردار حقیقی *<math>d </math>*-بعدی است. خوشه‌بندی کی-میانگین با هدف پارتیشن‌بندی *<math>n </math>* مشاهدات به k\leq n  مجموعه S = \{S_1, S_2, \cdots, S_k\}  است به طوری که مجموع مربع اختلاف از میانگین (یعنی واریانس) برای هر خوشه حداقل شود. تعریف دقیق ریاضی آن به این شکل است:
\underset{\mathbf{S}} {\operatorname{arg\,min}}  \sum_{i=1}^{k} \sum_{\mathbf x \in S_i} \left\| \mathbf x - \boldsymbol\mu_i \right\|^2 = \underset{\mathbf{S}} {\operatorname{arg\,min}}  \sum_{i=1}^{k} |S_i| \operatorname{Var}(S_i) 
که در آن *<math>\mu_i </math>* میانگین نقاط در *<math>S_i </math>* است. این معادل است با به حداقل رساندن دو به دو مربع انحراف از نقاط در همان خوشه:
\sum_{\text{Cluster }C_i} \,\sum_{\text{Dimension }d} \,\sum_{x,y\,\in\, C_i} (x_d-y_d)^2
چون کل واریانس ثابت است، از قانون واریانس کلی می‌توان نتیجه گرفت که این معادله برابر است با بیشینه کردن مربع انحرافات بین نقاط خوشه‌های مختلف (BCSS). 

## الگوریتم
### الگوریتم استاندارد
رایج‌ترین الگوریتم کی-میانگین با استفاده از یک تکرار شونده پالایش کار می‌کند. این الگوریتم به طور معمول با نام *الگوریتم کی-*میانگین شناخته می‌شود،‌ اما در میان جامعه علوم کامپیوتر،‌ اغلب آن را با عنوان الگوریتم لوید می‌شناسند.

الگوریتم به این شکل عمل می‌کند:

# ابتدا *<math>k </math>* میانگین یعنی \left(\mu_1^{(0)}, \mu_2^{(0)}, \cdots, \mu_k^{(0)}\right)  را که نماینده خوشه‌ها هستند، به‌صورت تصادفی مقداردهی می‌کنیم.
# سپس، این دو مرحله پایین را به تناوب چندین بار اجرا می‌کنیم تا میانگین‌ها به یک ثبات کافی برسند و یا مجموع واریانس‌های خوشه‌ها تغییر چندانی نکنند:
#* از میانگین‌ها *<math>k </math>*خوشه می‌سازیم، خوشه iام در زمان t تمام داده‌هایی هستند که از لحاظ اقلیدسی کمترین فاصله را با میانگین \mu^{(t)}_i یعنی میانگین iام در زمان t دارند. به زبان ریاضی خوشه iام در زمان t برابر خواهد بود با:
#*S_i^{(t)} = \big \{ x_p : \big \| x_p - \mu^{(t)}_i \big \|^2 \le \big \| x_p - \mu^{(t)}_j \big \|^2 \ \forall j, 1 \le j \le k \big\}
# حال میانگین‌ها را بر اساس این خوشه های جدید به این شکل بروز می‌کنیم:
#*\mu^{(t+1)}_i = \frac{1} \sum_{x_j \in S^{(t)}_i} x_j 
# در نهایت میانگین‌های مرحله آخر (در زمان *<math>T </math>*) یعنی \left(\mu_1^{(T)}, \mu_2^{(T)}, \cdots, \mu_k^{(T)}\right)  خوشه‌ها را نمایندگی خواهند کرد.

الگوریتم کی-میانگین را می‌توان با پویانمایی پایین برای k=3  به تصویر کشید.
پیوند=https://en.wikipedia.org/wiki/File:K-means_convergence.gif|جایگزین=همگرایی کی-میانگین|بندانگشتی|همگرایی کی-میانگین




## کاربردها
خوشه‌بندی کی‌میانگین خوشه‌بندی حتی برای مجموعه داده‌های بزرگ به‌ویژه هنگام استفاده از روش‌های اکتشافی مانند Lloyd's algorithm بسیار آسان است. این با موفقیت در تقسیم‌بندی بازار، بینایی رایانه‌ای و نجوم در میان بسیاری از حوزه‌های دیگر مورد استفاده قرار گرفته است. اغلب به عنوان یک مرحله پیش پردازش برای الگوریتم های دیگر استفاده می شود، به عنوان مثال برای پیدا کردن یک پیکربندی شروع.

### کمیت‌سازی برداری

خوشه‌بندی کی‌میانگین از پردازش سیگنال سرچشمه می گیرد و هنوز در این حوزه کاربرد دارد. به عنوان مثال، در گرافیک کامپیوتری، رنگ‌سنجی وظیفه کاهش پالت رنگ یک تصویر به تعداد ثابتی *k* از رنگ‌ها است. الگوریتم کی‌میانگین به راحتی می تواند برای این کار استفاده شود و نتایج قابل رقابتی ایجاد کند. یک مورد استفاده برای این رویکرد بخش‌بندی تصویر است. کاربردهای دیگر کمیت‌سازی برداری عبارتند از نمونه‌گیری غیرتصادفی، زیرا کی‌میانگین به راحتی می‌تواند برای انتخاب *k* نمونه متفاوت اما مقدماتی از یک مجموعه داده بزرگ برای آنالیزهای بیشتر استفاده شود.

### تحلیل خوشه‌ای

در تحلیل خوشه‌ای می‌توان الگوریتم کی‌میانگین را برای تقسیم‌بندی مجموعه داده ها به *k* خوشه استفاده کرد.
با این حال، الگوریتم کی‌میانگین خالص خیلی منعطف نیست، و به همین دلیل کاربرد محدودی دارد (به جز کمیت‌سازی برداری مانند بالا).
به طور خاص، انتخاب پارامتر *k* سخت است (همانطور که در بالا مورد بحث قرار گرفت) زمانی که توسط قیود خارجی داده نشده باشد. محدودیت دیگر این است که نمی توان آن را با توابع فاصله دلخواه یا روی داده های غیر عددی استفاده کرد. برای این موارد استفاده، بسیاری از الگوریتم های دیگر برتر هستند.

### یادگیری ویژگی
خوشه‌بندی کی‌میانگین به عنوان یک مرحله یادگیری ویژگی (یا یادگیری دیکشنری) در (یادگیری نیمه نظارتی یا یادگیری خودران (خودسازمانده) استفاده شده است.

رویکرد اصلی ابتدا آموزش به وسیله الگوریتم خوشه‌بندی کی‌میانگین با استفاده از داده‌های آموزشی ورودی (که نیازی به برچسب گذاری ندارند) است. سپس تصویر کردن هر داده ورودی در فضای ویژگی جدید، و یک تابع «رمزگذاری» مانند مبنای ضرب ماتریس داده‌ها با مکان‌های مرکز داده‌ها، که فاصله هر نمونه را تا مرکز آن محاسبه می کند، یا به سادگی یک تابع نشانگر برای نزدیکترین مرکز،
و یا تبدیل هموار فاصله‌ها.
.

روش دیگر، تبدیل فاصله نمونه-خوشه از طریق یک تابع پایه شعاعی گاوسی می‌باشد که لایه پنهان یک شبکه تابع پایه شعاعی را به دست می‌آورد. این استفاده از کی‌میانگین به طور موفقیت آمیزی با طبقه‌بندی خطی های ساده برای یادگیری نیمه نظارتی در پردازش زبان طبیعی (NLP) (به ویژه برای دسته‌بندی موجودیت‌های نام‌دار) ترکیب شده است. در بینایی رایانه‌ای. در یک کار تشخیص شی مشخص شد که عملکرد قابل مقایسه‌ای با رویکردهای یادگیری ویژگی پیچیده‌تری مانند خودرمزگذار و ماشین بولتزمن محدود شده ارائه می‌دهد. با این حال، معمولاً برای عملکرد معادل به داده‌های بیشتری نیاز دارد، زیرا هر نقطه داده تنها به یک "ویژگی" کمک می‌کند.

## نگارخانه

File:K-means convergence.gif|همگرایی کی-میانگین
Image:K Means Example Step 1.svg|
Image:K Means Example Step 2.svg|
Image:K Means Example Step 3.svg|
Image:K Means Example Step 4.svg|


## منابع

رده:الگوریتم‌های آماری
رده:روش‌های خوشه‌بندی