第十篇: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) ...
随机推荐
- git恢复误删除文件
在git仓库管理下误删除文件一般会分为以下3种情况: 1.手动直接删掉,如选择-右击-删除 这种删除未修改本地仓库[版本库],只修改了工作区,直接git checkout -- fileName即可恢 ...
- [Python Study Notes]异常处理
正则表达式 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理 断言(Assertions) python标准异常 ...
- css 把图片变为为黑白
img{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o- ...
- html拨打电话、发送短信、发送邮件的链接写法
拨打电话 <a href="tel:88888888">呼叫</a> 发送短信 <a href="sms:88888888"> ...
- 【学习笔记】Hibernate关联映射(Y2-1-6)
Hibernate关联映射 关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 1.单向多对一关联 准备数据库 部门表和员工表 其中部门表有两列 部门编号和名称 员工表有三列 员工 ...
- C语言_结构体变量指针做函数参数的使用案例
# include <stdio.h> # include <stdlib.h> # include <string.h> # include <malloc ...
- Zend Framework在windows下的安装
1:首先需要下载安装PHP的依赖管理工具Composer 详情去http://docs.phpcomposer.com/了解 下载链接: https://getcomposer.org/downloa ...
- SQLite常用函数及语句
SQLite3.0使用的是C的函数接口,常用函数如下: sqlite3_open() //打开数据库 sqlite3_close() //关闭数据库 sqlite3_exec() //执行sql语句, ...
- UVA - 658 最短路
思路:通过前后两种状态建立一条边,利用Dijsktra就可以做了. 注意利用二进制优化. AC代码 #include <cstdio> #include <cmath> #in ...
- ES磁盘分配不均问题
最近es集群磁盘空间告警,日志又没地方可以迁移,然后申请了新的服务器,一次性加入8台新的服务器 新增了32个新的数据节点,至此,我们的主集群已经到达85个数据节点的规模,整个集群数据已达到PB级别,终 ...