喜欢就点关注吧!
无监督学习是机器学习的另一大分支,与监督学习不同,无监督学习的数据集中没有数据标签,因此无法像监督学习的分类和回归问题那样学习对应标签的数据特征,无监督学习只能通过算法分析数据间的相似性来对数据进行聚类分析,今天我们就来看一下两大聚类算法:K-means聚类和分层聚类。
K-means聚类
K-means算法的核心是在我们的数据集中找到能最小化数据间距离的中心点,该中心点称为“质心”。质心的数量也就是我们设定的想要输出类的数量。 质心的寻找是一个迭代过程,由两个步骤组成:
- 首先,对于每个质心,算法找到与该质心相近的最近点(通常利用欧几里德距离),并将它们分配到该类别。
- 其次,对于每个类别(由一个质心表示),算法计算归因于该类的所有点的平均值。并将此平均值设为该类的新质心。
经过几次迭代之后,质心将不会发生明显的变化,因此该质心即为数据集聚类的最终质心。
那么我们如何来判断质心选取的好坏呢?衡量的标准有很多,今天就给大家介绍一种通过平方差来判断的方法,公式如下。
该数学表达式表示某一类中的数据点到质心的平方差之和,那么假如数据集中所有数据都为质心的话,WCSS就为0,下图为质心数与WCSS之间的关系:
分层聚类
分层聚类有下图所示的两种方式:聚合与分裂
在分层聚类中,相似性度量也是通过数据点之间的距离来判断的,下边介绍分层聚类中三种距离度量方式:
最小值:表示给定两个簇C1和C2,它们之间的相似性等于点a和b之间的相似性最小值(平移:距离),使得a属于C1,b属于C2。
最大值: 表示给定两个簇C1和C2,它们之间的相似性等于点a和b之间的相似性的最大值,使得a属于C1,b属于C2。
平均值:表示计算所有点对之间的相似性,然后计算相似度的平均值来表示簇C1和C2之间的相似性。
综上所述,两种聚类算法都在寻找数据之间的相似性,并且都使用相同的方法来确定簇的数量。至于两种算法在统一数据集上的聚类结果差异可以通过随机生成数据,用两种算法进行聚类计算,通过可视化聚类结果进行对比。
参考
https://towardsdatascience.com/unsupervised-learning-k-means-vs-hierarchical-clustering-5fe2da7c9554