第十篇: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语言包的说明文档。
第十篇:K均值聚类(KMeans)的更多相关文章
- 【转】算法杂货铺——k均值聚类(K-means)
k均值聚类(K-means) 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时 ...
- (ZT)算法杂货铺——k均值聚类(K-means)
https://www.cnblogs.com/leoo2sk/category/273456.html 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先 ...
- 机器学习理论与实战(十)K均值聚类和二分K均值聚类
接下来就要说下无监督机器学习方法,所谓无监督机器学习前面也说过,就是没有标签的情况,对样本数据进行聚类分析.关联性分析等.主要包括K均值聚类(K-means clustering)和关联分析,这两大类 ...
- 机器学习之路:python k均值聚类 KMeans 手写数字
python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: ...
- 吴裕雄 python 机器学习——K均值聚类KMeans模型
import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics ...
- K均值聚类
聚类(cluster)与分类的不同之处在于, 分类算法训练过程中样本所属的分类是已知的属监督学习. 而聚类算法不需要带有分类的训练数据,而是根据样本特征的相似性将其分为几类,又称为无监督分类. K均值 ...
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...
- Python实现kMeans(k均值聚类)
Python实现kMeans(k均值聚类) 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) 计算过程 st=>start: 开始 e=> ...
- 聚类之K均值聚类和EM算法
这篇博客整理K均值聚类的内容,包括: 1.K均值聚类的原理: 2.初始类中心的选择和类别数K的确定: 3.K均值聚类和EM算法.高斯混合模型的关系. 一.K均值聚类的原理 K均值聚类(K-means) ...
随机推荐
- Matlab中图论工具箱的应用
Matlab图论工具箱的命令见表1 表1 matlab图论工具箱的相关命令 命令名 功能 graphallshortestpaths 求图中所有顶点对之间的最短距离 graphconncomp 找无 ...
- .NET Core UI框架Avalonia
.NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...
- bzoj[1835][ZJOI2010]base 基地选址
bzoj[1835][ZJOI2010]base 基地选址 标签: 线段树 DP 题目链接 题解 这个暴力DP的话应该很容易看出来. dp[i][j]表示造了i个通讯站,并且j是第i个的最小费用. \ ...
- maven排除jar包冲突
首先查看mvn中冲突的包 使用命令:mvn dependency:tree -Dverbose | grep "omitted for conflict with" windows ...
- 利用mock提高效率
利用mock提高效率 谈到mock,就不得不讲前后端分离.理想情况下前后端不分离,由全栈的人以product和infrastructure的维度进行开发,效率是最高的.近些年来业务的复杂度越来越高,真 ...
- 市面上有没有靠谱的PM2.5检测仪?如何自己动手制作PM2.5检测仪
市面上能买到的11中常见的pm2.5检测仪 网上大佬实测并不是很准,我这里没测过(全买下来有点贵,贫穷限制了我的想象力) 这些检测仪多数是复合式.多功能的空气质量检测仪.具体就不一一介绍了.这篇文章 ...
- mysql那些事
---恢复内容开始--- 登录 mysql登录 -u+用户 -p 密码 显示数据库 show databases; 使用某个数据库 use xxx; 显示数据库表 show tables 显示表结构 ...
- 2015四川省acm B题
Carries frog has n integers a1,a2,-,an, and she wants to add them pairwise. Unfortunately, frog is s ...
- HDU - 2612 bfs [kuangbin带你飞]专题一
分别以两个人的家作为起点,bfs求得到每个KFC最短距离.然后枚举每个KFC,求得时间之和的最小值即可. 此题不符合实际情况之处: 通过了一个KFC再去另一个KFC可以吗? 出题人都没好好想过吗? ...
- 理解 Git
Git 如何保存文件 其它版本管理系统通常会保存所有文件及其历次提交的差异(diff / revision),通过 merge 原始文件与各阶段的差异就能获取任何版本的状态 而 Git 保存的是每一次 ...