本文講解如何使用R語言進行 KMeans 均值聚類分析,並以一個關於人口出生率死亡率的實例演示具體分析步驟。算法
1. 載入並瞭解數據集;
2. 調用聚類函數進行聚類;
3. 查看聚類結果描述;
4. 將聚類結果圖形化展現;
5. 選擇最優center並最終肯定聚類方案;
6. 圖形化展現不一樣方案效果並提交分析報表。函數
1. 載入並瞭解數據集spa
1.1 從網上下載一份txt格式的關於人口出生率統計的數據(countries.txt)。其內容大體以下:3d
1.2 載入數據集countries.txt:blog
1.3 查看相關文件信息,如維度,文件具體內容:文檔
1.4 給數據集行列更名,並查看更名後的結果:原型
1.5 畫出全部樣本點:it
2. 調用聚類函數進行聚類變量
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. 查看聚類結果
結果內容從上至下分別爲:
- 每一個簇的樣本數;
- 每一個簇的質心;
- 每一個樣本的聚類結果;
- 本次聚類的相關統計信息:包含組內平方和,總平方和,組間平方和,以及組間平方和/總平方和。顯然它越大越好;
- 最下面的那部分是指聚類結果數據集fit_km1中的各個變量(也即上面的那些信息,如fit_km1$size就等於3)。
4. 將聚類結果圖形化展現
5. 選擇最優center並最終肯定聚類方案
很顯然,當k超過了8以後,聚類的結果波動就不大了。
可作圖形象化的展現此現象:
6. 用 k=8 進行聚類,而後看看和中國屬於一類的國家有哪些。
除了 k 的大小,還能夠經過調整迭代次數、選擇中心點次數、從新實現算法等方式實現最優聚類。
另外,本文所講的只是最爲經典的KMeans聚類,更多更好玩的聚類算法,請查閱相關論文或相關R語言包的說明文檔。