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


前言

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

聚類分析總體流程

1. 載入並了解數據集;
2. 調用聚類函數進行聚類;
3. 查看聚類結果描述;
4. 將聚類結果圖形化展示;
5. 選擇最優center並最終確定聚類方案;
6. 圖形化展示不同方案效果並提交分析報表。

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

       1. 載入並了解數據集

       1.1 從網上下載一份txt格式的關於人口出生率統計的數據(countries.txt)。其內容大致如下:

       

       1.2 載入數據集countries.txt:

       

       1.3 查看相關文件信息,如維度,文件具體內容:

       

       1.4 給數據集行列改名,並查看改名后的結果:

       

       1.5 畫出所有樣本點:

       

       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語言包的說明文檔。


免責聲明!

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



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