K 均值算法

均值算法是一種典型的無監(jiān)督學(xué)習(xí)算法斥赋,用來對數(shù)據(jù)進行分類。

聚類問題 Clustering

針對監(jiān)督式學(xué)習(xí),輸入數(shù)據(jù)為 (x, y) 惨驶,目標(biāo)是找出分類邊界,即對新的數(shù)據(jù)進行分類敛助。而無監(jiān)督式學(xué)習(xí)只給出一組數(shù)據(jù)集 ${x_1, x_2, ... , x_m}$ 粗卜,目標(biāo)是去找出這組數(shù)據(jù)的模式特征,比如哪些數(shù)據(jù)是一種類型的纳击,哪些數(shù)據(jù)是另外一種類型的续扔。典型的無監(jiān)督式學(xué)習(xí)包括市場細分,通過分析用戶數(shù)據(jù)焕数,來把一個產(chǎn)品的市場進行細分测砂,找出細分人群。另外一個是社交網(wǎng)絡(luò)分析百匆,分析社交網(wǎng)絡(luò)中的參與人員的不同特點砌些,根據(jù)特點區(qū)分出不同群體。這些都是無監(jiān)督式學(xué)習(xí)里的聚類 (Clustering) 問題加匈。

K 均值算法

K 均值算法算法就是一種解決聚類問題的算法存璃,它包含兩個步驟:

  • 給聚類中心分配點:計算所有的訓(xùn)練樣例,把他分配到距離某個聚類中心最短的的那聚類里雕拼。
  • 移動聚類中心:新的聚類中心移動到這個聚類所有的點的平均值處纵东。

一直重復(fù)做上面的動作,直到聚類中心不再移動為止啥寇。這個時候我們就探索出了數(shù)據(jù)集的結(jié)構(gòu)了偎球。可以通過一個動畫來直觀地看一下 K 均值算法聚類的過程:

k-means animation

用數(shù)學(xué)的方法來描述 K 均值算法如下:

算法有兩個輸入信息辑甜。一是 K 表示選取的聚類個數(shù)衰絮;二是訓(xùn)練數(shù)據(jù)集 ${x^{(1)}, x^{(2)}, ... , x^{(m)}}$。

  1. 隨機選擇 K 個聚類中心 $u_1, u_2, ... , u_k$磷醋。
  2. 從 1 - m 遍歷所有的數(shù)據(jù)集猫牡,計算 $x^{(i)}$ 分別到 $u_1, u_2, ... , u_k$ 的距離,記錄距離最短的聚類中心點邓线。然后把 $x^{(i)}$ 這個點分配給這個聚類淌友。令 $c^{(i)} = j$ 其中 $u_j$ 就是與 $x^{(i)}$ 距離最短的聚類中心點。計算距離時骇陈,一般使用 $| x^{(i)} - u_j |^2$ 來計算震庭。
  3. 從 1 - K 遍歷所有的聚類中心,移動聚類中心的新位置到這個聚類的均值處你雌。即 $u_j = \frac{1}{c} \left( \sum_{d=1}^c \right)$ 器联,其中 c 表示分配給這個聚類的訓(xùn)練樣例點的個數(shù)。如果特殊情況下,沒有點分配給這個聚類中心主籍,那么說明這個聚類中心就不應(yīng)該存在习贫,直接刪除掉這個聚類中心,最后聚類的個數(shù)變成 K - 1 個千元。
  4. 重復(fù)步驟 2 苫昌,直到聚類中心不再移動為止。

K 均值算法成本函數(shù)

K-means cost function

其中幸海, $c^{(i)}$ 是訓(xùn)練樣例 $x^{(i)}$ 分配的聚類序號祟身;$u_{c^{(i)}}$ 是 $x^{(i)}$ 所屬的聚類的中心點。K 均值算法的成本函數(shù)的物理意義物独,就是訓(xùn)練樣例到其所屬的聚類中心點的距離的平均值袜硫。

隨機初始化聚類中心點

假設(shè) K 是聚類的個數(shù),m 是訓(xùn)練樣本的個數(shù)挡篓,那么必定有 $K < m$婉陷。在隨機初始化時,隨機從 m 個訓(xùn)練數(shù)據(jù)集里選擇 K 個樣本來作為聚類中心點官研。這是正式推薦的隨機初始化聚類中心的做法秽澳。

在實際解決問題時,最終的聚類結(jié)果會和隨機初始化的聚類中心點有關(guān)戏羽。即不同的隨機初始化的聚類中心點可能得到不同的最終聚類結(jié)果担神。因為成本函數(shù)可能會收斂在一個局部最優(yōu)解,而不是全局最優(yōu)解上始花。一個解決方法是多做幾次隨機初始化的動作妄讯,然后訓(xùn)練出不同的取類中心點以及聚類節(jié)點分配方案。然后用這些值算出成本函數(shù)酷宵,最終選擇那個成本最小的亥贸。

比如,假設(shè)我們做 100 次運算忧吟,步驟如下:

  1. 隨機選擇 K 個聚類中心點
  2. 運行 K 均值算法砌函,算出 $c^{(1)}, c^{(2)}, ... , c^{(m)}$ 和 $u_1, u_2, ... , u_k$
  3. 使用 $c^{(1)}, c^{(2)}, ... , c^{(m)}$ 和 $u_1, u_2, ... , u_k$ 算出最終的成本值
  4. 記錄最小的成本值,然后跳回步驟 1溜族,直到達到最大運算次數(shù)

這樣我們可以適當(dāng)加大運算次數(shù),從而求出全局最優(yōu)解垦沉。

選擇聚類的個數(shù)

怎么樣選擇合適的聚類個數(shù)呢煌抒?實際上聚類個數(shù)和業(yè)務(wù)有緊密的關(guān)聯(lián),比如我們要對 T-Shirt 大小進行聚類分析厕倍,我們是分成 3 個尺寸好呢還是分成 5 個尺寸好寡壮?這個更多的是個業(yè)務(wù)問題而非技術(shù)問題。3 個尺寸可以給生產(chǎn)和銷售帶來便利,但客戶體驗可能不好况既。5 個尺寸客戶體驗好了这溅,但可能會給生產(chǎn)和庫存造成不便。

Elbow
Elbow

從技術(shù)角度來講棒仍,也是有一些方法可以來做一些判斷的悲靴。我們可以把聚類個數(shù)作為橫坐標(biāo),成本函數(shù)作為縱坐標(biāo)莫其,這樣把成本和聚類個數(shù)的數(shù)據(jù)畫出來癞尚。如上圖所示。大體的趨勢是隨著 K 值越來越大乱陡,成本越來越低浇揩。我們找出一個拐點,即在這個拐點之前成本下降比較快憨颠,在這個拐點之后胳徽,成本下降比較慢,那么很可能這個拐點所在的 K 值就是我們要尋求的最優(yōu)解爽彤。

當(dāng)然膜廊,這個技術(shù)方法并不總是有效,我們很可能會得到一個沒有拐點的曲線淫茵,這樣的話爪瓜,就必須和業(yè)務(wù)邏輯結(jié)合以便選擇合適的聚類個數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匙瘪,一起剝皮案震驚了整個濱河市铆铆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丹喻,老刑警劉巖薄货,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碍论,居然都是意外死亡谅猾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門鳍悠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來税娜,“玉大人,你說我怎么就攤上這事藏研【淳兀” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵蠢挡,是天一觀的道長弧岳。 經(jīng)常有香客問我凳忙,道長,這世上最難降的妖魔是什么禽炬? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任涧卵,我火速辦了婚禮,結(jié)果婚禮上腹尖,老公的妹妹穿的比我還像新娘柳恐。我一直安慰自己,他們只是感情好桐臊,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布胎撤。 她就那樣靜靜地躺著,像睡著了一般断凶。 火紅的嫁衣襯著肌膚如雪伤提。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天认烁,我揣著相機與錄音肿男,去河邊找鬼。 笑死却嗡,一個胖子當(dāng)著我的面吹牛舶沛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窗价,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼如庭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撼港?” 一聲冷哼從身側(cè)響起坪它,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帝牡,沒想到半個月后往毡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡靶溜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年开瞭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罩息。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗤详,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扣汪,到底是詐尸還是另有隱情断楷,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布崭别,位于F島的核電站冬筒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茅主。R本人自食惡果不足惜舞痰,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诀姚。 院中可真熱鬧响牛,春花似錦、人聲如沸赫段。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糯笙。三九已至贬丛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間给涕,已是汗流浹背豺憔。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留够庙,地道東北人恭应。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像耘眨,于是被迫代替她去往敵國和親昼榛。 傳聞我的和親對象是個殘疾皇子剔难,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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