
利用k均值聚類算法進行祖源分析
k均值聚類算法(kmeans)是機器學習中無監督學習的一種聚類算法。
原理:
先隨機選取K個對象作為初始的聚類中心。然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對象就代表一個聚類。一旦全部對象都被分配了,每個聚類的聚類中心會根據聚類中現有的對象被重新計算。這個過程將不斷重復直到滿足某個終止條件。終止條件可以是以下任何一個:
1)沒有(或最小數目)對象被重新分配給不同的聚類。
2)沒有(或最小數目)聚類中心再發生變化。
3)誤差平方和局部最小。
------
我們以從某處(懂得都懂)獲取到的國內人群祖源PCA二維數據為例
首先目前k值我們是未知的,所以我們先以CH系數為衡量聚類效果的標準,CH系數越高聚類效果越好。所以我們先求從3到20的CH系數。
代碼:
?
CH系數可視化:
?
因為k值越小(也就是分的類別越少)我們分析起來就越方便,所以我們遵從的規則是在保證CH系數的前提下盡量選擇小k值。根據可視化結果可以觀察出,k=5或許是個較好的選擇。
?
接著上代碼:
?
可視化聚類結果(紅色五角星為每一簇的質心)
?
與原來帶標簽的散點圖對比:
?
將兩圖對比我們可大概分析出
質心從左向右分別為:西北地區少數民族、西北地區漢族以及華北地區和少部分西南地區、華中東部、西南以及華東地區、華南地區。
原理:
先隨機選取K個對象作為初始的聚類中心。然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對象就代表一個聚類。一旦全部對象都被分配了,每個聚類的聚類中心會根據聚類中現有的對象被重新計算。這個過程將不斷重復直到滿足某個終止條件。終止條件可以是以下任何一個:
1)沒有(或最小數目)對象被重新分配給不同的聚類。
2)沒有(或最小數目)聚類中心再發生變化。
3)誤差平方和局部最小。
------
我們以從某處(懂得都懂)獲取到的國內人群祖源PCA二維數據為例
首先目前k值我們是未知的,所以我們先以CH系數為衡量聚類效果的標準,CH系數越高聚類效果越好。所以我們先求從3到20的CH系數。
代碼:
?
CH系數可視化:
?
因為k值越小(也就是分的類別越少)我們分析起來就越方便,所以我們遵從的規則是在保證CH系數的前提下盡量選擇小k值。根據可視化結果可以觀察出,k=5或許是個較好的選擇。
?
接著上代碼:
?
可視化聚類結果(紅色五角星為每一簇的質心)
?
與原來帶標簽的散點圖對比:
?
將兩圖對比我們可大概分析出
質心從左向右分別為:西北地區少數民族、西北地區漢族以及華北地區和少部分西南地區、華中東部、西南以及華東地區、華南地區。
3 個回復
贊同來自:
贊同來自:
-3.04E-03,3.42E-04
-1.61E-02,-5.71E-02
1.10E-02,-4.41E-03
-6.22E-03,-6.66E-03
3.39E-03,-9.45E-04
贊同來自:
要回復問題請先登錄或注冊