KMeans聚類算法

KMeans

KMeans是一種無監(jiān)督學習聚類方法, 目的是發(fā)現(xiàn)數(shù)據(jù)中數(shù)據(jù)對象之間的關(guān)系熟丸,將數(shù)據(jù)進行分組,組內(nèi)的相似性越大,組間的差別越大怀大,則聚類效果越好呀闻。

無監(jiān)督學習,也就是沒有對應的標簽,只有數(shù)據(jù)記錄.通過KMeans聚類,可以將數(shù)據(jù)劃分成一個簇,進而發(fā)現(xiàn)數(shù)據(jù)之間的關(guān)系.

[圖片上傳失敗...(image-fa9971-1543240223005)]

原理

KMeans算法是將數(shù)據(jù){x^1, x^2 ,..., x^n}聚類成k個簇,其中每個x^i \in R^n, 算法具體描述:

  1. 隨機選擇k個聚類質(zhì)心點:\mu_1, \mu_2, ..., \mu_k;
  2. 重復下面過程直到收斂{
    對于每一個數(shù)據(jù)i,計算其屬于的簇:
    c^{(i)} := argmin_j||x^{(i)}-\mu_j||^2;
    對于每個簇j,重新計算簇質(zhì)心:
    \mu_j=\frac{\sum_{i=1}^n1{(c^i==j)}x^i}{\sum_{i=1}^n1{(c^{(i)}=j)}}
    }

用語言描述來說,就是:隨機確定k個初始點作為簇中心; 為每個數(shù)據(jù)分配簇[計算每條數(shù)據(jù)和簇中心的相似度,分配到最相似的簇上];根據(jù)簇中的數(shù)據(jù)點對每個簇中心進行更新.反復重復直到收斂為止.

偽代碼:

創(chuàng)建k個點作為起始質(zhì)心;
當任意一個點的簇分配結(jié)果發(fā)生改變時:
    對數(shù)據(jù)集中的每個數(shù)據(jù)點:
        對每個質(zhì)心: 
            計算質(zhì)心和當前數(shù)據(jù)點的相似度 
        將數(shù)據(jù)點分配到最近的質(zhì)心所代表的簇上 
    對于每個簇,計算簇中所有點的均值,并將均值作為新的簇中心[質(zhì)心]

存在問題及其處理方法

  • 必須事先給出k(要生成的簇的數(shù)目),而且對初值敏感捡多,對于不同的初始值,可能會導致不同結(jié)果局服。
  • 不適合于發(fā)現(xiàn)非凸面形狀的簇或者大小差別很大的簇。
  • 對于“躁聲”和孤立點數(shù)據(jù)是敏感的山涡,因為簇的中心是通過計算數(shù)據(jù)的平均值得到的唆迁,這些數(shù)據(jù)的存在會使聚類的中心發(fā)生很大的偏移;
  • 容易陷入到局部最優(yōu)解.

對于局部最優(yōu)解的問題,一方面可以像決策樹一樣,對最后生成的聚類效果進行"剪枝"處理,但有所不同,因為要保證簇數(shù)目不變,所有處理進行"剪枝處理"外,還需要"增枝處理",具體可以依據(jù)某種指標[SSE sum of square errors]選擇指標最大的簇嘗試劃分, 然后選擇兩個進行合并,保證簇的數(shù)目不變.

另一方面,可以對kmeans進行優(yōu)化處理,存在一種二分kMeans處理.

二分k均值:首先將所有數(shù)據(jù)看成一個簇,然后將該簇一分為二,之后選擇其中一個簇繼續(xù)劃分, 如何選擇簇取決于對其劃分是否可以最大程度的降低SSE的值;然后反復重復,直到得到K個簇為止.

代碼實現(xiàn)

github地址: repository

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唐责,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鼠哥,更是在濱河造成了極大的恐慌,老刑警劉巖朴恳,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件于颖,死亡現(xiàn)場離奇詭異,居然都是意外死亡森渐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門竟块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耐齐,“玉大人前弯,你說我怎么就攤上這事秫逝⊙叮” “怎么了违帆?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵刷后,是天一觀的道長渊抄。 經(jīng)常有香客問我,道長护桦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任贪染,我火速辦了婚禮催享,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘因妙。我一直安慰自己,他們只是感情好攀涵,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布汁果。 她就那樣靜靜地躺著,像睡著了一般据德。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橱野,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天善玫,我揣著相機與錄音密强,去河邊找鬼蜗元。 笑死或渤,一個胖子當著我的面吹牛奕扣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播池磁,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼楷兽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芯杀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤跛梗,失蹤者是張志新(化名)和其女友劉穎棋弥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顽染,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡粉寞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唧垦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡巧还,死狀恐怖坊秸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情褒搔,我是刑警寧澤喷面,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布走孽,位于F島的核電站,受9級特大地震影響咬像,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一陷舅、第九天 我趴在偏房一處隱蔽的房頂上張望审洞。 院中可真熱鬧莱睁,春花似錦芒澜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碧浊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箱锐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工浩聋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臊恋,地道東北人赡勘。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓捞镰,卻偏偏與公主長得像毙替,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厂画,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容