聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。
主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。下面主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。
1. 基本思想
通过迭代的方式寻找 k 个簇的划分方案,使得聚类结果对应的代价函数最小。代价函数可以定义为各个样本距离它所属的簇中心点的误差平方和:
J ( c , μ ) = ∑ i = 1 N ∣ ∣ x i − μ c i ∣ ∣ 2 J(c, \mu)=\sum_{i=1}^{N} || x_i-\mu_{c_i} ||^2 J (c ,μ)=∑i =1 N ∣∣x i −μc i ∣∣2
其中,x i x_{i}x i 代表第i个样本,c i c_{i}c i 是x i x_{i}x i 所属的簇,μ c i \mu_{c_{i}}μc i 代表簇对应的中心点(即均值),N是样本总数.
2. 算法流程
采用了贪心策略,通过多次迭代近似求解代价函数。
3. 优缺点
优点:
- 原理简单,满足常见需求
- 对于大数据集相对可伸缩且高效
缺点:
- 初值选取较难
- k 均值只能做到局部最优
- 受初值和离群点影响大
- 样本只能被划分到单一类别中
4. k值如何选取
定义为:
G a p ( k ) = E ( l o g D k ) − l o g D k Gap(k)=E(logD_k)-logD_k G a p (k )=E (l o g D k )−l o g D k
其中,D k D_{k}D k 是第k簇聚类对应的损失值,E ( l o g D k ) E(logD_{k})E (l o g D k )是l o g D k logD_{k}l o g D k 的期望。
对于上式的 E ( l o g D k ) E(logD_{k})E (l o g D k ),一般通过蒙特卡洛模拟产生。具体操作是:在样本所在的区域内,按照均匀分布随机产生和原样本数目一样的随机样本,计算这些随机样本的均值,得到一个 D k D_{k}D k ,重复多次即可计算出 E ( l o g D k ) E(logD_{k})E (l o g D k ) 的近似值。
G a p ( k ) Gap(k)G a p (k ) 可以看做是随机样本的损失与实际样本的损失之差,假设实际样本最佳的簇类数目为 k,那么实际样本的损失应该相对较小,随机样本的损失与实际样本的损失的差值相应地达到最大,即 最大的G a p ( k ) Gap(k)G a p (k ) 值应该对应最佳的k值。
因此,我们只需要用不同的k值进行多次实验,找出使得G a p ( k ) Gap(k)G a p (k )最大的k即可。
到现在为止我们可以发现,上面的算法中,k值都是通过人为地凭借经验或者多次实验事先确定下来了的,但是当我们遇到高维度、海量的数据集时,可能就很难估计出准确的k值。那么,有没有办法可以帮助我们自动地确定k值呢?有的,下面来看看另一个算法。
ISODATA,全称是迭代自组织数据分析法,针对传统 k-means 算法需要人为地预先确定 k 值而改进的,主要思想是:
- 当某个类别样本数过多,分散程度较大时,将该类别分为两个子类(分裂操作,增加聚类中心数)
- 当属于某个类别的样本数目过少时,把该类别去掉(合并操作,减少聚类中心数)
优点:可以自动寻找合适的 k 值
缺点: 除了要设置一个参考聚 类数量 k 0 k_{0}k 0 外,还需要指定额外的3个阈值,来约束上述的分裂和合并操作。具体如下:
根据分解的顺序时自下而上还是自上而下,层次聚类算法分为凝聚的层次聚类和分裂的层次聚类
凝聚性层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚性层次聚类,只在簇间相似度的定义上有所不同。
流程:以采用最小距离的凝聚层次聚类为例:
假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间到输出空间的降维映射,其映射具有拓扑性质,与实际的大脑处理很有理论联系
流程:
Original: https://blog.csdn.net/weixin_46180132/article/details/126901228
Author: 老衲要学习
Title: 机器学习(五)聚类算法(k-means,)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549380/
转载文章受原作者版权保护。转载请注明原作者出处!