机器学习:kMeans 聚类

聚类

聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。它是一种无监督的学习(Unsupervised Learning)方法,不需要预先标注好的训练集。聚类与分类最大的区别就是分类的目标事先已知;

K-Means 算法:

k均值(k-means)是聚类算法中最为简单、高效的,属于无监督学习算法;
核心思想:由用户指定K个初始质心(initial centroids),以作为聚类的类别(cluster),重复迭代直至算法收敛;

基本算法流程:
1.选取k个初始质心(作为初始cluster)
2.重复:对每个样本点,计算得到距其最近的质心,将其类别标记为该质心所对应的cluster,重复计算k个cluster对应的质心;
3.直到质心不在发生改变或迭代达到上线;
在这里插入图片描述
上述过程的 伪代码 如下:
1.创建 k 个点作为起始质心(通常是随机选择)
2.当任意一个点的簇分配结果发生改变时(不改变时算法结束),对数据集中的每个数据点,对每个质心,计算质心与数据点之间的距离,将数据点分配到距其最近的簇;
3.对每一个簇, 计算簇中所有点的均值并将均值作为质心,不断迭代,直至质心位置不发生改变(误差范围内);

K-Means 术语

簇: 所有数据的点集合,簇中的对象是相似的。
质心: 簇中所有点的中心(计算所有点的均值而来).
SSE: Sum of Sqared Error(误差平方和), 它被用来评估模型的好坏,SSE 值越小,表示越接近它们的质心. 聚类效果越好。由于对误差取了平方,因此更加注重那些远离中心的点(一般为边界点或离群点)。

优缺点:

优点:
属于无监督学习,无须准备训练集
原理简单,实现起来较为容易
结果可解释性较好

缺点:
需手动设置k值。 在算法开始预测之前,我们需要手动设置k值,即估计数据大概的类别个数,不合理的k值会使结果缺乏解释性
可能收敛到局部最小值, 在大规模数据集上收敛较慢
对于异常点、离群点敏感
使用数据类型 : 数值型数据

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值