聚類(一)——Kmeans

Clustering

聚類K-means

  聚類是機器學習和數據挖掘領域的主要研究方向之一,它是一種無監督學習算法,小編研究生時期的主要研究方向是「數據流自適應聚類算法」,因此對聚類算法有比較深入的理解,因而決定開一個專題來寫聚類算法,但願能夠爲入門及研究聚類相關算法的讀者帶來幫助。聚類能夠做爲一個單獨的任務,用於尋找數據內在分佈結構,也常常做爲其餘學習任務的前驅過程,應用十分普遍。今天,小編就帶你探索聚類算法的奧祕,並介紹第一個聚類算法Kmeans。算法

 

Q:什麼是聚類?

A:聚類是按照某一種特定的標準(類似性度量,如歐式距離等),把一個數據集分割成不一樣的類,使得同一個類中的數據對象的類似性儘量大,不一樣類之間的差別性也儘量大,以下圖是一個聚類結果的可視化:機器學習

image.png

    聚類有很是普遍的應用,好比根據消費記錄發現不一樣的客戶羣,對基因表達進行聚類能夠研究不一樣種羣中的基因特徵,對文本進行聚類能夠快速找出相關主題的文章等。函數

 

Q:如何度量類似性?

A:經常使用的類似性度量方式主要有如下幾種:學習

  • 歐式距離:image.png優化

  • Minkowoski距離:image.pngspa

  • 曼哈頓距離:image.png3d

  • 餘弦距離:image.pngcode

  • Jaccard類似係數:image.png對象

  • 相關係數:image.pngblog



 

Q:經常使用的聚類算法有哪些?

A:

  • 基於劃分的聚類:k-means,mean shift

  • 層次聚類:BIRCH

  • 密度聚類:DBSCAN

  • 基於模型的聚類:GMM

  • Affinity propagation

  • 譜聚類

    上面的這些算法只是簡單的引入聚類的概念,在接下來的專題中,咱們將具體探討經典的聚類算法,研究它們的原理,分析優缺點,應用場景等。今天,咱們就來學習最經典的一個聚類算法Kmeans

 

K-means

 

Kmeans聚類原理

    Kmeans算法的思想很簡單,根據給定樣本集中樣本間距離的大小將樣本集劃分爲k個簇(類),使得每一個點都屬於距離它最近的那個聚類中心(即均值means)對應的類。之因此叫kmenas是由於它能夠發現k(用戶指定)個簇且簇中心用屬於該簇的數據的均值來表示。

 

Kmeans聚類算法

     數據集合X={x1,...xn}中每一個樣本都是d維無標籤數據,kmeans聚類的目標是將這n個點分到k個簇使得簇內點到簇中心點(均值)的距離平方和最小,即求下列目標函數的最優解

  其中μi就是簇Si中點的均值。   

    然而解上式並非一個簡單的問題,由於它是一個NP難問題,因此kmeans算法採用一種啓發式的迭代求解方法:

    首先隨機選擇k個對象做爲初始的聚類中心,而後計算每一個樣本到各個聚類中心的距離,並分配給距離它最近的聚類中心。一旦對象全都被分配了,從新計算每一個簇的中心(均值)做爲下一次迭代的新的中心點。這一過程將重複進行直到知足下列任一條件:

  • 沒有對象被從新分配給新的類;

  • 聚類中心再也不發生變化;

  • 偏差平方和局部最小。

 

Tips:

  • k值的選擇:通常來講咱們能夠根據數據的先驗選擇一個合適的k,若是不行,則能夠經過交叉驗證選擇合適的k;

  • 初始化k箇中心點:能夠隨機選擇,也能夠每次選擇距離其餘中心點儘量遠的點做爲中心;

Kmeans++算法

  前面咱們也提到了K個初始化中心的選擇對聚類算法的運行結果和時間有很大影響,Kmeans++算法提出了對隨機化初始化聚類中心的優化:

  1. 從輸入的數據點集合中隨機選擇一個點做爲第一個聚類中心μ1;

  2. 對於數據集中的每個點xi,計算它與已選擇的聚類中心最近的一個的距離D(xi);

  3. 選擇D(xi)較大的點做爲新的聚類中心;

  4. 重複b,c直到找出k個聚類中心; 

    

Kmeans算法小結

優勢:

  • 原理簡單,實現簡單,收斂速度快;

  • 聚類效果比較好;

  • 可解釋性強,直觀;

  • 只有一個參數k;

缺點:

  • k的選擇對聚類效果影響較大;

  • 對於不是凸的數據集比較難收斂;

  • 類別不均衡數據集聚類效果很差;

  • 結果局部最優;

  • 對噪聲點敏感;

  • 聚類結果是球形。

 

小結:

    今天是聚類算法學習的第一部分,內容雖然簡單可是很重要,kmeans算法經常做爲其餘算法的基礎,如以前的半監督學習以及以後會講的譜聚類算法都會用到。相信今天的學習你必定也有了收穫,聚類專題的下一篇內容是譜聚類,敬請期待!

掃碼關注

獲取有趣的算法知識

qrcode_for_gh_32a933b66b99_258.jpg

相關文章
相關標籤/搜索