机器学习实战学习笔记 ---- K-Means(K-均值)聚类算法

版权声明:学习交流为主,未经博主同意禁止转载,禁止用于商用。 https://blog.csdn.net/u012965373/article/details/88877328

聚类是一种无监督的学习,它将相似的对象归到一个簇中,将不相似的对象归到不同的簇中。

相似这一概念取决于所选择的相似度计算方式。

K-Means是发现给定数据集的K个簇的聚类算法,之所以称之为 “K-均” 值是因为它可以发现K个不同的簇,且每个簇的中心采用的所含值的均值计算而成。

簇个数K是用户指定的,每一个簇通过其质心(centroid),即簇中所有点的中心来描述。

聚类与分类算法的最大区别在于,分类的目标类别已知,而聚类的目标类别是未知的,

优缺点:

优点:容易实现

缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢

使用数据类型:数值型数据

扫描二维码关注公众号,回复: 5898647 查看本文章

K-Means场景

主要用来聚类,但是类别是未知的。

例如:对地图上的点进行聚类。

K-Means术语

  • 簇:所有数据点的集合,簇中的对象是相似的。

  • 质心:簇中所有点的中心(计算所有点的均值而来)。

  • SSE:Sum of Sqared Error (平房误差和),SSE值越小,表示越接近他们的质心,由于对误差取了平方,因此更加注重那么远离中心的点。

K-Means的工作流程:

1.首先确定K个初始点作为质心(不是数据中心的点)

2.然后将数据集中的每个点分配到一个簇中,具体来讲就是为每个点找到距离最近的质心。并将其分配该质心所对应的簇,这一步完成后,每一个簇的质心更新为该簇所有点的平均值。

上述过程的伪代码如下:

  • 创建K个初始点作为质心(不是数据中的点)

  • 当任意一个点的簇分配结果发生改变时

    • 对数据集中的每个数据点

      • 对每个质心

        • 计算质心与数据点之间的距离

      • 将数据点分配到距离其最近的簇

    • 对每一个簇,计算簇中所有点的均值并将均值作为质心

猜你喜欢

转载自blog.csdn.net/u012965373/article/details/88877328