聚类算法总结

k-means

算法步骤

输入:聚类簇数k,样本集合D

输出:簇划分C={C1,C2,...,Ck}

       1.选取k个样本作为初始的均值向量;

       2.计算每个数据点到均值向量的距离,数据点距离那个均值向量近,就划分到哪一个类别中;

       3.计算每个类别的均值向量(中心点),判断与上一次的是否有变化,有则更新;

      4.重复上述步骤,直到每一个类别的均值变化不大为止。

 

k-means的改进:

          k-means的缺点:

  1. 需要用户事先指定聚类的个数k值
  2. 对初始聚类中心敏感,选择不同的聚类中心会产生不同的聚类结果
  3. 无法发现任意簇

k-means++:针对第二个问题进行改进,减少k-means对初始值的依赖性

整体思想和k-means相差不大,主要是在第一步选取初始均值时,不再是随机选取k个数据对象作为初始聚类的中心,而是遵循初始聚类中心之间的聚类尽可能远的原则选取。

选取k个聚类中心的思想:

  1. 假设已经选取了n个初始聚类中心n<k,在选取第n+1个聚类中心的时候:距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚类中心
  2. 在选取第一个聚类中心(n=1)时,采取随机的方法

算法步骤

输入:簇数目k,数据集D

输出:k个簇

  1. 从数据集中随机选取一个样本作为初始聚类中心K1
  2. 对于数据集的每一个点,计算它与已有聚类中心之间的最短聚类,用D(x)表示
  3. 选取一个新的样本作为聚类中心:原则。D(x)较大的点,被选取作为聚类中心的概率会较大---关键
  4. 重复步骤2,3,直到选出k个聚类中心
  5. 重复k-means算法的2-4步骤

mini batch k-means:一种训练方法上的改进:每次训练算法时所随机抽取的数据集子集进行算法训练


Spectural Cluster,基于图论的聚类方法,将无向图划分为两个或两个以上的最优子图,使得子图内部尽量相似,而子图之间的距离尽量较远。

 

基本思想:利用数据的相似矩阵(拉普拉斯矩阵)进行特征分解后得到特征向向量进行聚类

 


DBSCAN:密度聚类,聚类的结构通过样本分布的紧密程度确定。

\epsilon-邻域:样本集与数据点x_{j}距离不大于\epsilon的样本集合

核心对象:x_{j}的邻域至少包含MinPts个样本,那么x_{j}就是一个核心对象

密度直达:x_{j}位于x_{i}\epsilon-邻域中,且x_{i}为核心对象,那么x_{j}x_{i}密度直达

密度可达:对x_{j}x_{i},若存在样本序列p_{1},p_{2},...,p_{n},,其中,x_{1}=p_{1},x_{j}=p_{n}p_{i+1}由p_{i}密度直达p_{i}密度直达,则称x_{j}x_{i}密度可达

密度相连:对x_{j}x_{i},若存在x_{k}使得x_{j}x_{i}均由x_{k}密度可达,则称x_{j}x_{i}密度相连。

算法步骤

输入:样本数据集。邻域参数(\epsilon,MinPts)

输出:划分好的簇,个数不确定

  1. 根据给定的邻域参数找出所有的核心对象
  2. 以任一核心对象为出发点,找出由其密度可达的样本生成的聚类簇,知道所有核心对象都被访问过

不需要确定簇数,but需要指定邻域和minPts

 


Gaussian mixtures:采用概率模型来表达聚类模型

k-mean是将每一个数据点分配到某一个cluster上,GMM是给出每个数据点分配到每个cluster上的概率。

使用混合高斯模型做聚类首先要假设数据点是呈高斯分布的。

单维高斯分布的概率密度函数:

其中,\mu ,\sigma ^{2}表示高斯分布的均值,\sigma ^{2} 表示方差。

 

假设混合高斯模型由k个高斯模型组成(即数据包含k个类),则混合高斯模型GMM概率密度函数:

,其中p(x|k)=N(x|\mu _{k},\sum k)是第k个高斯模型的概率密度函数,p(k)是第k个高斯模型的权重。

算法步骤

输入:样本数据集,高斯混合成分个数k

输出:k个簇类

  1. 初始化高斯混合分布的参数(均值,方差,混合系数)
  2. 给定每个簇的高斯分布,计算数据点属于每个簇的概率:每个数据集由各混合成分生成的后验概率(贝叶斯定理)
  3. 计算高斯参数使得数据点的概率最大化
  4. 重复2,3步骤,迭代更新高斯参数直到参数的变化不大

混合高斯模型里面涉及到的两个知识点:

极大似然估计:清楚某个变量服从的高斯分布,通过采样得到了这个变量的样本数据,想求高斯分布的参数

 

EM

 

 

https://blog.csdn.net/u014665013/article/details/78970184https://blog.csdn.net/lin_limin/article/details/81048411

上面两个博客写的比较好

 

                   高斯分布参数估计逻辑流程,图片来源:https://blog.csdn.net/lin_limin/article/details/81048411

                                    混合高斯分布参数估计逻辑流程, 图片来源:https://blog.csdn.net/lin_limin/article/details/81048411


hierarchical clustering:层次聚类,试图在每个层次对数据集进行划分,形成树形的聚类结构,有自底向上的聚合策略和自顶向下的分拆策略两种

AGENS:自底向上的聚合策略,先将数据集中的每一个样本看作一个初始聚类簇,然后每一步找出距离最近的两个聚类簇进行合并,过程不断重复直到达到预设的聚类簇个数。

算法步骤

输入:样本数据集,距离度量函数d,聚类簇数k

输出:k个簇

  1. 先将数据集的每个数据点作为一个簇
  2. 分别计算他们两两之间的距离(根据距离公式d)
  3. 找出距离最小的两个簇,合并为一个簇
  4. 重复2,3步骤,直到簇数达到预设的聚类簇数

效率低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君子慎独_诚意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值