1、Kmeans的定义
聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。
无监督学习通常用于聚类,通过样本件的相似性对数据集进行聚类,使类内差距最小化,类间差距最大化。
2、原理
首先需要弄清楚两个概念:簇和质心
簇: 直观上来看,簇是一组聚在一起的数据,在一个簇中的数据就认为是同一类。
质心: 簇中所有数据的均值通常被称为这个簇的质心。
如何求取质心:
在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广至高维空间。
欧式距离计算公式:
二维平面上的欧式距离:
假设待求两点的二维平面坐标为a
(
,
)和b
(
,
),则其距离公式为:
=
=![]()
3、实现的流程步骤
- 首先随机选取样本中的K个点作为初始聚类中心(质心);
- 分别算出样本中其他数据点距离这K个聚类中心的距离,以最近距离的质心缩在的簇作为该数据点分类后的簇;
- 对上述分类完的样本再进行每个簇求平均值,求解出新的聚类质心;
- 与前一次计算得到的K个聚类质心比较,如果聚类质心发生变化,转过程b,否则转过程e;<

本文详细介绍了K-means聚类算法的概念、原理,包括簇和质心的定义,以及其实现流程步骤。还提供了部分代码解析,展示了如何通过Qt编程实现K-means算法,包括数据读取、计算距离、更新质心等关键步骤。
最低0.47元/天 解锁文章
2863

被折叠的 条评论
为什么被折叠?



