美文网首页
聚类与应用

聚类与应用

作者: 士多啤梨苹果橙_cc15 | 来源:发表于2017-08-24 11:41 被阅读0次

    谱聚类

    rbf kernel

    原型聚类:Kmeans、GMM高斯混合模型【独立的cluster】

    有些聚类算法是可以看作树状的重叠,不用输入k

    kmeans的损失函数是每个类到中心点的平方误差和,且损失函数的最小化是一个NP问题

    容易陷入局部最小。

    那么陷入局部最小怎么办呢?

    ————kmeans对初始化中心敏感

    改进:kmeans++

    ————缓解方法:

    1. 初始第一个聚类中心为某个样本点,初始化第二个中心离第一个点最远,初始化第三个中心离前两个最远....

    2. 多初始化几遍,选所有这些据类中损失函数(到聚类中心的平方和最小)

    3. 优化的初始化聚类方法kmeans++

    ————关于k的选择

    1. 很经典的“肘点法”--把损失函数在不同的k下的画出来

    2. 选取不同的k值,画出损失函数曲线

    3. 选取“肘点值”

    图像聚合

    kmeans不同k下的聚合

    关于k的选定,比如80w商品,期望每个类有100个商品。直接聚合的话跑起来会非常的慢。这时会通过商品的一些文本信息,比如下装、牛仔裤、长裤,短裤等先做一个分类。可能聚合成200个类,然后再对这200个类并行跑。

    还有一种情况比如说聚类成2000个类,再对每个类进行遍历,有些类里包含的样本个数非常少,这样的类是可以不分出来的,也能减少分类的个数。

    kmeans先进行切分,逐层去用比较好。

    kmeans和kmeans++的区别:

    1. 初始化。kmeans随机初始化,kmeans++每次初始最远的点

    -------kmeans的局限性

    1. 属于“硬聚类”,每个样本只能有一个类别。其他的一些聚类方法(GMM或者模糊kmeans允许软聚类)

    2. kmeans对于异常点的“免疫力”很差,我们可以通过一些调整(比如中心不直接取均值,而是找均值最近的样本点代替)

    3. 对于团状的数据点集区分度好,对于带状(环绕)等“非凸”形状不太好。(用谱聚类或者特征映射)

    带状聚类 对于密度不同的效果也不太好

    -------层次聚类

    层次聚类

    ----Kmeans VS 层次聚类

    1. Kmeans这种扁平聚类产出一个聚类结果(都是独立的)

    2. 层次聚类可以根据聚类程度不同,有不同的结果

    3. Kmeans需要指定聚类的个数k,层次聚类不用

    4. 通常来说Kmeans比层次聚类快

    5. Kmeans用的多,可以用K-median

    ----高斯混合模型!其实我到现在不怎么懂

    GMM的优势?

    1. 可理解性好

    看作多个分布的组合

    2. 速度快

      因为使用EM这种高效算法,时间复杂度O(tkn)

    3. 学术上比较直观

    最大数据似然概率

    4. 可以拓展到其他分布的混合

    多个多项式分布做类别判定

    劣势:

    1. 初始化要慎重,不然可能掉到局部最优里去

    2. 需要手工指定K(高斯分布)的个数

    3. 对于非凸的分布数据集也无能为力

    总结:怎么做的

    1. 根据当前的参数指定概率分布

    2. 根据概率分布重新估计参数

    相关文章

      网友评论

          本文标题:聚类与应用

          本文链接:https://www.haomeiwen.com/subject/lausdxtx.html