本节简要介绍一下聚类的概念,通过实例了解K均值聚类算法的基本原理。
“聚类”简介
机器学习模型可以将训练集的数据划分为若干组。每个组称之为“簇”。这些自动形成的簇,对应着不同的潜在概念。
这种学习方式就叫做“聚类”。其重要特点是在学习的过程中不需要用标签对训练样本进行标注。也就是说,学习过程能感觉现有的训练集自动完成分类(聚类)。
根据训练数据是否有标签,可以将学习划分为监督学习和无监督学习。K邻近/支持向量机都是监督学习,提供有标签的数据给算法学习,然后对数据进行分类。而聚类是一种无监督学习,事先不知道分类标签是什么,直接对数据分类。
有100个豆子,如果仅仅知道这里面有两种,但不知道是什么品种,此时可以根据豆子的大小、颜色、或者组合属性,将其划分为两个类型,再此过程中,我们没有使用已知标签,也同样完成了分类,此时就叫做无监督学习。
理论知识
假设有6个豆子混在一起,在都不知道豆子类别的情况下,将其以直径为依据划分为2类。
经过测量,以mm为单位,这些豆子的直径大小是1、2、3、10、20、30;将其分别标记为A、B、C、D、E、F,并进行分类操作。
第一步:随机选取两粒豆子作为参考豆子,如A和B。
第二步:计算其他豆子与A和B之间的距离。并离哪个豆子近就划分都哪个组里去。
现在有两组豆子:
- 第一组:只有豆子A
- 第二组:豆子B、C、D、E、F,共5粒豆子。
第三步:分别计算第一组豆子以及第二组豆子的直径平均值。重新分组。
- 第一组的平均值:AV1 = 1mm
- 第二组的平均值:AV2 = 13mm
计算各粒豆子距离AV1、AV2的距离,并确定分组。
得到新的分组:
- AV1组:豆子A、豆子B、豆子C
- AV2组:豆子D、豆子E、豆子F
第四步:重复第三步,直到分组都稳定了,即可认为分组完成。
上面的例子是比较极端的,仅仅是为了方便理解K均值聚类原理.实际处理时可能要经过多轮迭代。>
基本步骤
K均值聚类是一种将输入数据划分为K个簇的简单的聚类方法,该算法不断提取当前分类的中心点,并最终在分类稳定时完成聚类。
基本步骤如下:
- 1、随机选取K个点作为分类的中心点
- 2、将每个数据点放到距离它最近的中心点所在的类中
- 3、重新计算各个分类的数据点的平均值,将该平均值作为新的分类中心点
- 4、重复迭代第二步和第三步,直到分类稳定