zoukankan      html  css  js  c++  java
  • 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut

    聚类算法是ML中一个重要分支,一般采用unsupervised learning进行学习,本文根据常见聚类算法分类讲解K-Means, K-Medoids, GMM, Spectral clustering,Ncut五个算法在聚类中的应用。

    Clustering Algorithms分类:

    1. Partitioning approach:

            建立数据的不同分割,然后用相同标准评价聚类结果。(比如最小化平方误差和)

            典型算法:K-Means, K-Medoids

    2. Model-based:

           对于每个类假定一个分布模型,试图找到每个类最好的模型

           典型算法:GMM(混合高斯) 

    3. Dimensionality Reduction Approach:

           先降维,再聚类

           典型算法:Spectral clustering,Ncut

    1. Partitioning approach

    1.目标:

           找出一个分割,使得距离平方和最小

    2.方法:

           Global optimal : 枚举所有partition

           Heuristic method:K-Means, K-Medoids

    3.K-Means算法:

           1. 将数据分为k个非空子集

           2. 计算每个类中心点(k-means<centroid>中心点是所有点的average),记为seed point

           3. 将每个object聚类到最近seed point

           4. 返回2,当聚类结果不再变化的时候stop

    4.K-Medoids算法:

    Given k,the k-medoids algorithm is implemented in five steps:

    1.partition objects into k nonempty subsets

    2.compute the centroids of the clusters of the current partitioning

    3.choose the nearest points of the centroids of the clusters as seed points

    4.assign each object to the cluster with the nearest seed point

    5.go back to step 2,stop when the assignment does not change

    5.特点:

           -聚类结果与初始点有关(因为是做steepest descent from a random initial starting oint)

           -是局部最优解

           -在实际做的时候,随机选择多组初始点,最后选择拥有最低TSD(Totoal Squared Distance)的那组

    缺点:1、需先确定k的个数 2、对噪声和离群点敏感 3、结果不一定是全局最优,只能保证局部最优 4、结果不稳定 (受输入顺序影响)

    2. Model-based——GMM(Gaussian Mixture Model)

    1.GMM概念:

              -将k个高斯模型混合在一起,每个点出现的概率是几个高斯混合的结果。

     -假设有K个高斯分布,每个高斯对data points的影响因子为πk,数据点为x,高斯参数为theta,则

              -要估计的模型参数为每个类的影响因子πk,每个类的均值(μk)及协方差矩阵(Σk)

    2. GMM的似然函数:

              log-likelihood function:

              假设N个点的分布符合i.i.d,则有似然函数

              问题是,对于这样的一个似然函数,用gradient descent的方法很难进行参数估计(可证明)

              所以用EM算法进行估计:

     

    3. EM具体应用到GMM参数求解问题:

    E-step: 根据已有observed data和现有模型估计missing data:Qi(zk)

    M-step: 已经得到了Q,在M-step中进行最大似然函数估计(可以直接用log-likelihood似然函数对参数求偏导)

    4. K-Means与GMM的比较:         

    KMeans: 

    1. Objective function:§Minimize the TSD
    2. Can be optimized by an EM algorithm.
              §E-step: assign points to clusters.
              §M-step: optimize clusters.
              §Performs hard assignment during E-step.
    3. Assumes spherical clusters with equal probability of a cluster.

     -GMM:

    1. Objective function:§Maximize the log-likelihood.
    2. EM algorithm:
              §E-step: Compute posterior probability of membership.
              §M-step: Optimize parameters.
              §Perform soft assignment during E-step.
    3. Can be used for non-sphericalclusters. Can generate clusterswith different probabilities.

    3. Dimensionality Reduction Approach: Spectral Clustering 

    1. Spectral clustering要解决的问题:

    上面的KMeans不能能解决一些问题,如图所示:

    而这种问题可以通过谱聚类(spectral clustering)解决。将数据展开到两个特征向量空间,即得:

    下面我们介绍谱分解的算法

    1. 根据数据构造一个 Graph ,Graph 的每一个节点对应一个数据点,将相似的点连接起来,并且边的权重用于表示数据之间的相似度。把这个 Graph 用邻接矩阵的形式表示出来,记为 W 。一个最偷懒的办法就是:直接用我们前面在 K-medoids 中用的相似度矩阵作为 W 。
    2. 把 W 的每一列元素加起来得到 N 个数,把它们放在对角线上(其他地方都是零),组成一个 N	imes N 的矩阵,记为 D 。并令 L = D-W 。
    3. 求出 L 的前 k 个特征值(在本文中,除非特殊说明,否则“前 k 个”指按照特征值的大小从小到大的顺序){lambda}_{i=1}^k 以及对应的特征向量 {mathbf{v}}_{i=1}^k 。
    4. 把这 k 个特征(列)向量排列在一起组成一个 N	imes k 的矩阵,将其中每一行看作 k维空间中的一个向量,并使用 K-means 算法进行聚类。聚类的结果中每一行所属的类别就是原来 Graph 中的节点亦即最初的 N 个数据点分别所属的类别。

    http://blog.pluskid.org/?p=287

    http://blog.csdn.net/abcjennifer/article/details/8170687

  • 相关阅读:
    Linux 内核开发—内核简单介绍
    strcmp函数和strcpy函数
    POJ 3734
    怎样使用SetTimer MFC 够具体
    java 递归函数
    海量数据存储
    使用WinINet和WinHTTP实现Http訪问
    getline函数
    UDP编程
    数据文件传输通道技术解决方式
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/6018457.html
Copyright © 2011-2022 走看看