天天看點

第十篇:K均值聚類(KMeans)

本文講解如何使用R語言進行 KMeans 均值聚類分析,并以一個關于人口出生率死亡率的執行個體示範具體分析步驟。

前言

       本文講解如何使用R語言進行 KMeans 均值聚類分析,并以一個關于人口出生率死亡率的執行個體示範具體分析步驟。

聚類分析總體流程

1. 載入并了解資料集;

2. 調用聚類函數進行聚類;

3. 檢視聚類結果描述;

4. 将聚類結果圖形化展示;

5. 選擇最優center并最終确定聚類方案;

6. 圖形化展示不同方案效果并送出分析報表。

人口出生/死亡率聚類分析 - K均值聚類

       1. 載入并了解資料集

       1.1 從網上下載下傳一份txt格式的關于人口出生率統計的資料(countries.txt)。其内容大緻如下:

第十篇:K均值聚類(KMeans)

       1.2 載入資料集countries.txt:

第十篇:K均值聚類(KMeans)

       1.3 檢視相關檔案資訊,如次元,檔案具體内容:

第十篇:K均值聚類(KMeans)

       1.4 給資料集行列改名,并檢視改名後的結果:

第十篇:K均值聚類(KMeans)

       1.5 畫出所有樣本點:

第十篇:K均值聚類(KMeans)

       2. 調用聚類函數進行聚類

第十篇:K均值聚類(KMeans)

       kmeans 函數的原型為:kmeans (x, centers, iter.max=10, nstart=1, alogorithm=c("Hartigan-Wong", "Lloyd", "For-gy", "MacQueen"))。

       這裡解釋下函數 kmeans 中的幾個形參:

- x:進行聚類分析的資料集;

- centers:簇個數;

- iter.max:最大疊代次數;

- nstart:選擇随機中心點的次數 (選擇結果最優的那次随機質心);

- alogorithm:具體實作算法。預設為Hartigan-Wong。

       3. 檢視聚類結果

第十篇:K均值聚類(KMeans)

       結果内容從上至下分别為:

       - 每個簇的樣本數;

       - 每個簇的質心;

       - 每個樣本的聚類結果;

       - 本次聚類的相關統計資訊:包含組内平方和,總平方和,組間平方和,以及組間平方和/總平方和。顯然它越大越好;

       - 最下面的那部分是指聚類結果資料集fit_km1中的各個變量(也即上面的那些資訊,如fit_km1$size就等于3)。

       4. 将聚類結果圖形化展示

第十篇:K均值聚類(KMeans)
第十篇:K均值聚類(KMeans)

       5. 選擇最優center并最終确定聚類方案

第十篇:K均值聚類(KMeans)

       很顯然,當k超過了8之後,聚類的結果波動就不大了。

       可做圖形象化的展示此現象:

第十篇:K均值聚類(KMeans)
第十篇:K均值聚類(KMeans)

       6. 用 k=8 進行聚類,然後看看和中國屬于一類的國家有哪些。

第十篇:K均值聚類(KMeans)

小結

        除了 k 的大小,還可以通過調整疊代次數、選擇中心點次數、重新實作算法等方式實作最優聚類。

        另外,本文所講的隻是最為經典的KMeans聚類,更多更好玩的聚類算法,請查閱相關論文或相關R語言包的說明文檔。

繼續閱讀