前面介绍的5种机器学习算法都属于监督学习,即对于一组输入有与之对应的类别(分类)或者相对应的值(回归)。而接下来要介绍的一种算法,聚类属于无监督学习,即对于输入数据没有相对应的标签或者值。
6.1 算法思想
俗话说:“物以类聚、人以群分”,聚类就是把相似的东西分到一起。
聚类算法简单的可分为以下几步:
- 确定要分类的簇数量K,然后随机产生K个聚类中心。
- 计算所有的点与K个聚类中心的距离,然后选择距离最小的那个作为本次训练该点所处的簇
- 在所有的点分类完成之后,在各个簇中根据平均距离最小原则寻找新的聚类中心
-
根据新的聚类中心,再重新分类,不断重复上诉过程,完成分类
工作过程就如图上所示
- 图(a):所有样本未分类
- 图(b):随机选择2个聚类中心
- 图(c):将所有的样本点按聚类中心分类
- 图(d):选择新的聚类中心
- 图(e):重新分类
- 图(f):不断迭代
6.2 “距离”
以上的算法中比较重要的一点是“距离”,即按照什么标准来衡量样本点与聚类中心之间的距离。常用的计算”距离”的公式有欧几里得距离和夹角余弦相似度。
(1) 欧几里得距离
(2) 夹角余弦相似度
假设样本有2个特征,则这两个样本的夹角余弦相似度公式如下:
6.3 K-means优劣点
优势:
- 简单、快速、适合常规数据集
劣势:
- K值难确定。对于一个不知道怎样分布的样本数据,不知道将它分为多少类才合适。
- 复杂度与样本呈线性关系。
- 很难发现任意形状的簇。
以下图为例,讲讲为何K-means难以发现任何形状的簇。
对于如上图所示的样本数据,在K-means算法中,无论聚类中心如何变化,都不能按照我们想要的将样本分为大环和小环两类。
网友评论