聚類算法K-Means算法和Mean Shift算法介紹及實現


Question:什么是聚類算法

1、聚類算法是一種非監督學習算法

2、聚類是在沒有給定划分類別的情況下,根據數據相似度進行樣本分組的一種方法

3、理論上,相同的組的數據之間有相同的屬性或者是特征,不同組數據之間的屬性或者特征1相差就會比較大

聚類算法分類:

1、划分方法(k-means)

划分方法通過優化一個划分標准的方式將數據集D組織成k個簇

2、層次方法(sahn)

層次方法在不同粒度水平上為數據集D創造層次聚類,其中每層特定的聚類結果由相應粒度水平的閾值決定

3、基於密度的方法(Mean Shift)

基於密度的方法從密度的角度構造簇類

4、基於網格的方法(STING)

基於網格的方法是將數據集D量化進數量有限的網格單元中,量化過程通常是多分辨率的

5、基於模型的方法(GMM)

假設存在一個數學模型能夠對數據集D的性質進行描述,通過對數據和該模型的符合程度進行優化,可以得到優化的結果

 

K-Means算法

1、核心思想K-Means聚類算法也稱K均值聚類算法,它采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度也越大。

2、算法實現

1)首先確定一個K值,即我們希望將數據集經過聚類得到K個集合

2)將數據集中隨機選擇K個數據點作為質心

3)對數據集中每個點,計算其與每一個質心的距離(如歐式距離),離哪個質心近,就划到哪個質心所屬的集合

4)把所有數據歸好集合后,一共有k個集合,然后重新計算每個集合的質心(數據均值)

5)如果新計算出來的質心和原來的質心的距離小於某一個設置的閾值,我們可以認為聚類已經達到期望的結果,算法終止

6)如果新質心和原質心距離變化很大,需要迭代3-5步驟

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、Mean Shift算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM