无监督聚类--机器学习日记

        无监督聚类分为基于划分方法的聚类、 基于层次方法的聚类、基于密度方法的聚类、基于网格方法的聚类、基于模型方法的聚类。

        划分方法的聚类(提前指定划分)

                经典算法:k-means聚类:不断的归类划分,最后划分出k个聚类,一开始先随机设置k个点作为聚类中心,在计算其他点距离k个中心点的距离从而划分为k个聚类。接着计算每个聚类的中心位置(使用均值),从而不断改变聚类的中心,最终达到收敛。需要事先指定划分聚类的个数k,并且初始中心点的选用对聚类效果影响很大

                                无划分聚类模型RPCL聚类:

                                                        设置N个初始簇心 N>k(k为真实簇的个数)

                                                        使用数据集中每个样本,计算其与各个簇心的距离,距离最短的为获胜者,按照一定的学习率对其进行修改,而距离第二短的既为次胜者,对次胜者采取惩罚既远离的与之计算的样本点,其他的簇心不做更改。每个样本单独计算并迭代。

                                                        最后通过统计在簇心周围的向量点来判断以该簇心为中心的集群是否能作为一个簇,并由此统计簇的数目。

                                学习向量量化:数据集是带标签的类型,初始化一组向量(几个簇就有几个点),任取向量中的一个点,计算数据集中点与它的距离,选取距离最近的点并判断标签是否一致,一致就向目标点靠近n个学习率的位置,不一致就原理,最终达到收敛。得到最终化向量,作为不同簇的样本中心点集。

                                高斯混合聚类:将数据集通过多个高斯分布(正态分布)混合表现(高斯模型由两个方面表现既均值和方差),即为高斯混合聚类

        层次方法的聚类:

                分为凝聚型和分裂型:凝聚型既自下而上,通过两个簇的不断合并,形成一个类似二叉树的树状图,分裂型既自上而下,开始整个数据集为一个簇,通过不停的分裂形成一棵树状图。需要决定链接策略,链接策略不同则效果不同。链接策略有:

        单链:取两簇内点相距最小的作为两簇之间的距离

        全链:取两簇点集中距离最大的作为两簇之间的距离(簇间链接策略不变,仍然是将距离最小的两簇合并)

        组平均:两簇点集之间距离之和/两簇的点的个数之积,作为两簇间的距离

        基于质心之间的链接:基于簇的质心之间的距离计算邻近度

        Ward方法:簇类C1和C2的距离等于两个簇类所有样本对距离平方和的平均,与均链接算法很相似。

        Lance-Williams公式:簇A,和簇B合并在一起形成簇Q,簇R和簇Q 的邻近度由该公式计算而出:

        p(R,Q)=αΑ·p(A,Q)+αΒ·p(B,Q)+β·p(A,B)+γ·|p(A,Q)-p(B,Q)| 其中αA,αB,β,γ都由链接策略不同而值不同。

                在链接策略中,判断两数据点的距离的方法有:

                        曼哈顿距离:坐标系上的绝对轴长度差之和例如A(x1,y2),B(x2,y2) d=|x1-x2|+|y1-y2|。

                        欧式距离:两点之间的直线距离

                        切比雪夫距离:单维坐标轴的距离中的最大值,例如A(x1,y2),B(x2,y2),d=max(|x1-x2|,|y1-y2}

                        Minkowski Distance:也被称为 闵氏距离。它不仅仅是一种距离,而是将多个距离公式(曼哈顿距离、欧式距离、切比雪夫距离)总结成为的一个公式(p=1,曼哈顿,p=2,欧式,p=∞切比雪夫)

                        对于文本或非数值型的数据,我们常用汉明距离(Hamming distance):表示两个相同长度的字符串在相同位置上不同字符的个数。用d(x,y)来表示x和y两个字符串的汉明距离。汉明距离可以用来计算两个文本之间的相似度,根据不同字符的个数来判断两个文本是否相似。和编辑距离(Levenshtein distance)表示样本间的距离。

        基于密度的聚类

                        DBSN算法:设置一个最密度阈值minPts,并设置一个半径r,随机找一个点,若以该点为圆心,r为半径的区域内数据数>minPts则称之为核心点,在不断的由核心点圆内的点作为其他圆的核心点,直到在该圆中的点<minPts则此时该点为边界点。由密度可达的非边界点的圆所组成的既为簇。同理用数据集中未访问到的点发展新的簇。

                        BRIDGE: 使用集成 k-means 的混合方法将数据集划分为 k 个簇,然后将基于密度的算法 DBSCAN 应用于每个分区以找到密集簇。

                        DBCLASD: 大型空间数据库的基于分布的聚类(参见 Xu et al., 1998)假设集群内的数据点是均匀分布的。生成的集群是根据最近邻距离定义的。

                        DENCLUE: 对大型多媒体数据进行聚类。它可以找到任意形状的簇,同时处理数据中的噪声。该算法有两个步骤。首先生成一个预聚类图,并将数据划分为仅考虑填充的超立方体。第二步采用数据密集的立方体和连接到数据密集的立方体的立方体来生成集群。

                        CUBN: 首先进行侵蚀操作以找到边界点。其次,使用最近邻法对17个边界点进行聚类。最后,使用最近邻法对内部点进行聚类。该算法能够发现非球形形状和大小的广泛变化。它的计算复杂度为 O(n),其中 n 是数据集的大小。

                        OPTICS: 这类似于 DBSCAN,但解决了它的一个弱点,即在密度变化数据中检测有意义的集群。

        基于网格的聚类

                        将数据空间分为多个网格,然后根据该网格的落点判断该网格中的数据点集中是否稠密(根据提前设定的阈值)合并相邻稠密的网格单元为一类 。

                        STING算法:基于统计信息网格的聚类。 将空间区域划分为由层次结构表示的矩形单元。根位于层级 1,其子级位于层级 2,依此类推。该算法的计算复杂度为 O(K),其中 K 是底层单元的数量。这意味着将这种方法扩展到更高维空间是困难的(Hinneburg 和 Keim,1999)。例如,如果在高维数据空间中每个单元格有四个孩子,那么第二级的单元格数量将是 2m,其中 m 是数据库的维数。

                        OptiGrid:用于对具有噪声的高维数据库进行聚类。它使用基于多维网格的分裂递归的数据分区,专注于通过超平面分离集群。选择一个穿过最小密度点的切割平面,因此分裂了两个密集的半空间。这个过程递归地应用于每个数据子集。该算法是分层的,时间复杂度为 O(n·m)

                        WaveCluster:在数据上定义了一个统一的二维网格,并用点数表示每个单元格中的数据点。因此,数据点成为一组灰度点,被视为图像。然后将寻找聚类的问题转化为图像分割问题,其中使用小波来利用它们的多尺度和降噪特性。基本算法如下:(a)创建数据网格并将每个数据对象分配给网格中的一个单元格,(b)对数据应用小波变换,(c)使用平均子图像找到连接的簇(即连接的像素),以及(d)将生成的簇映射回原始空间中的点。还有大量其他工作也基于使用小波和其他多分辨率变换进行分割。

                       CLIQUE: 该算法可以被认为是基于密度和网格的。从广义上讲,它的工作原理是:将每个维度划分为相同数量的等长区间;然后将每个m维数据空间分成不重叠的矩形单元;如果一个单元中包含的总数据点的比例超过模型参数,则该单元被认为是密集的。最后,集群是子空间内连接的密集单元的最大集合。

        基于模型的聚类【1】

                基于主题模型的聚类算法是假定数据的分布是符合一系列的概率分布,用概率分布模型去对数据进行聚类,而不是像层次聚类和划分聚类那样基于距离来进行聚类。因此,模型的好坏就直接决定了聚类效果的好坏。目前比较常用的基于主题聚类算法有LDA和PLSA等,其中LDA是PLSA的一个“升级”,它在PLSA的基础上加了Dirichlet先验分布,相比PLSA不容易产生过拟合现象,LDA是目前较为流行的用于聚类的主题模型。
                LDA(Latent Dirichlet Allocation,隐含狄利克雷分配),是一种三层贝叶斯概率模型,它由文档层、主题层和词层构成。LDA对三层结构作了如下的假设:

                整个文档集合中存在k个相互独立的主题
                每一个主题是词上的多项分布
                每一个文档由k个主题随机混合组成
                每一个文档是k个主题上的多项分布
                每一个文档的主题概率分布的先验分布是Dirichlet分布
                每一个主题中词的概率分布的先验分布是Dirichlet分布
                LDA生成过程
                按照先验概率p(di)p(di)选择一篇文档didi
                从狄利克雷分布(即Dirichlet分布)αα中取样生成文档 didi的主题分布θiθi,换言之,主题分布由超参数为αα的Dirichlet分布生成
                从主题的多项式分布θiθi中取样生成文档didi第 j 个词的主题zi,jzi,j
                从狄利克雷分布(即Dirichlet分布)ββ中取样生成主题zi,jzi,j对应的词语分布ϕzi,jϕzi,j,换言之,词语分布由参数为ββ的Dirichlet分布生成
                从词语的多项式分布中ϕzi,jϕzi,j采样最终生成词语wi,j

        
————————————————
【1】参考链接:https://blog.csdn.net/m0_37744293/article/details/79129592

                

                        

                

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值