聚類分析是一種靜態(tài)數(shù)據(jù)分析方法稀拐,常被用于數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)丹弱、模式識(shí)別等領(lǐng)域德撬,聚類是一種無監(jiān)督式的學(xué)習(xí)方法。它是在未知樣本類別的情況下躲胳,通過計(jì)算樣本彼此間的距離(歐式距離,馬式距離砰逻,漢明距離,余弦距離等)來估計(jì)樣本所屬類別泛鸟。從結(jié)構(gòu)性來劃分蝠咆,聚類方法分為自上而下和自下而上兩種方法。聚類的算法有很多種,大約幾十種刚操,K-means算法是十大經(jīng)典數(shù)據(jù)挖掘算法之一闸翅。
K-means算法是最為經(jīng)典的基于劃分的聚類方法,是十大經(jīng)典數(shù)據(jù)挖掘算法之一菊霜。它是一種自下而上的聚類方法坚冀。K-means算法最大的優(yōu)點(diǎn)是好理解、簡(jiǎn)單鉴逞、運(yùn)行速度快记某,但只能應(yīng)用于連續(xù)性的數(shù)據(jù);缺點(diǎn)是聚類的結(jié)果與我們初始設(shè)置的中心點(diǎn)的選擇有直接關(guān)系构捡,并且需要我們自己提供聚類的數(shù)目液南,但是可以通過多次聚類取最佳的結(jié)果來設(shè)定初始的聚類數(shù)目,如果當(dāng)我們不知道樣本集將要聚成多少個(gè)類別的時(shí)候勾徽,那么這時(shí)候不適合用kmeans算法滑凉,推薦使用其他方法來聚類,如(hierarchical 或meanshift)喘帚。
K-means算法的基本思想是:以空間中k個(gè)點(diǎn)為中心進(jìn)行聚類畅姊,對(duì)最靠近他們的對(duì)象歸類。通過迭代的方法吹由,逐次更新各聚類中心的值若未,直至得到最好的聚類結(jié)果,大概就是這個(gè)意思倾鲫,“物以類聚陨瘩、人以群分”。具體流程如下:
首先輸入一個(gè)k的值级乍,此值是我們自己設(shè)定的舌劳,k表示將數(shù)據(jù)集經(jīng)過聚類得到的分組個(gè)數(shù)。
從數(shù)據(jù)集中隨機(jī)選擇k個(gè)數(shù)據(jù)點(diǎn)作為初始中心點(diǎn)玫荣。
對(duì)集合中每一個(gè)數(shù)據(jù)點(diǎn)甚淡,分別計(jì)算與每一個(gè)初始中心點(diǎn)的距離,數(shù)據(jù)點(diǎn)離哪一個(gè)中心的越近捅厂,就歸類此類贯卦。
通過均值等方法對(duì)聚成的類再進(jìn)行新的中心點(diǎn)確定。
若新的中心點(diǎn)與原來的中心點(diǎn)之間的距離小于一個(gè)閾值(設(shè)置好的一個(gè)閾值)焙贷,說明比較穩(wěn)定撵割,那么此聚類達(dá)到了我們的期望,算法結(jié)束辙芍。
如果新的中心點(diǎn)與原來的中心點(diǎn)之間的距離很大啡彬,那么需要迭代以上的3-5步驟羹与。
K-means算法的關(guān)鍵點(diǎn)在于初始中心的選擇和距離公式。
KMeans的應(yīng)用場(chǎng)景非常多庶灿,除了一般的聚類場(chǎng)景(例如對(duì)用戶進(jìn)行分群組等)外纵搁,我們還可以用KMeans實(shí)現(xiàn)單變量的離散化,因?yàn)橐话愕牡阮l和等距的離散化方法往往會(huì)忽略變量中潛在的分布特征往踢,而基于聚類的離散化可以一定程度地保留變量的分布特征腾誉。