zoukankan      html  css  js  c++  java
  • 常用的聚类算法及聚类算法评价指标

    1. 典型聚类算法

    1.1 基于划分的方法

    代表:kmeans算法

    ·指定k个聚类中心640?wx_fmt=png
    ·640?wx_fmt=png(计算数据点与初始聚类中心的距离)
    ·640?wx_fmt=png(对于数据点640?wx_fmt=png,找到最近的640?wx_fmt=png{i}ci(聚类中心),将640?wx_fmt=png分配到640?wx_fmt=png{i}ci中)
    ·640?wx_fmt=png(更新聚类中心点,640?wx_fmt=png是新类别数值的均值点)
    ·640?wx_fmt=png(计算每一类的偏差)
    ·640?wx_fmt=png返回640?wx_fmt=png
    640?wx_fmt=png返回第二步

    1.2 基于层次的方法

    代表:CURE算法

    ·每个样本作为单独的一个类别640?wx_fmt=png
    ·640?wx_fmt=png
    ·合并640?wx_fmt=png,640?wx_fmt=png640?wx_fmt=png
    ·遍历完本次样本,合并成新的类别后,若存在多个类别,则返回第二步
    ·遍历完本次样本,合并成新的类别后,若所有样本为同一类别,跳出循环,输出每层类别

    1.3 基于网格的方法

    代表:STING算法

    ·将数据集合X划分多层网格结构,从某一层开始计算
    ·查询该层网格间的属性值,计算属性值与阈值的关系,判定网格间的相关情况,不相关的网格不作考虑
    ·如果网格相关,则进入下一层的相关区域继续第二步,直到下一层为最底层
    ·返回相关网格结果

    1.4 基于密度的方法

    代表:DBSCAN算法

    ·输入数据集合X,随机选取一点,并找出这个点的所有高密度可达点
    ·遍历此点的所有640?wx_fmt=png邻域内的点,并寻找这些密度可达点,判定某点640?wx_fmt=png邻域内的点,并寻找这些点密度可达点,判定某点的640?wx_fmt=png邻域内的点数是否超过阈值点数,超过则构成核心点
    ·扫描数据集,寻找没有被聚类的数据点,重复第二步
    ·输出划分的类,并输出异常值点(不和其他密度相连)

    1.5 神经网络的方法

    代表:SOM算法

    ·数据集合640?wx_fmt=png,权重向量为640?wx_fmt=png640?wx_fmt=png,归一化处理640?wx_fmt=png
    ·寻找获胜的神经元,找到最小距离,对于每一个输入数据,找到与之最相匹配的节点
    640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png的距离,更新权重:640?wx_fmt=png
    ·更新临近节点,640?wx_fmt=png,其中640?wx_fmt=png代表学习率

    1.6 基于图的聚类方法

    代表:谱聚类算法

    ·计算邻接矩阵640?wx_fmt=png,度矩阵640?wx_fmt=png640?wx_fmt=png
    ·计算拉普拉及矩阵640?wx_fmt=png
    ·计算归一化拉普拉斯矩阵640?wx_fmt=png
    ·计算640?wx_fmt=png的特征值和特征向量640?wx_fmt=png
    ·对Q矩阵进行640?wx_fmt=png聚类,得到聚类结果

    2. 聚类算法的评价指标

    一个好的聚类方法可以产生高品质簇,是的簇内相似度高,簇间相似度低。一般来说,评估聚类质量有两个标准,内部质量评价指标和外部评价指标。

    2.1 内部质量评价标准

    内部评价指标是利用数据集的属性特征来评价聚类算法的优劣。通过计算总体的相似度,簇间平均相似度或簇内平均相似度来评价聚类质量。评价聚类效果的高低通常使用聚类的有效性指标,所以目前的检验聚类的有效性指标主要是通过簇间距离和簇内距离来衡量。这类指标常用的有CH(Calinski-Harabasz)指标等

    CH指标

    CH指标定义为:
    640?wx_fmt=png
    其中640?wx_fmt=png表示类间距离差矩阵的迹,640?wx_fmt=png表示类内离差矩阵的迹,640?wx_fmt=png是整个数据集的均值,640?wx_fmt=png是第640?wx_fmt=png个簇640?wx_fmt=png的均值,640?wx_fmt=png代表聚类个数,640?wx_fmt=png代表当前的类。640?wx_fmt=png值越大,聚类效果越好,640?wx_fmt=png主要计算簇间距离与簇内距离的比值

    簇的凝聚度

    簇内点对的平均距离反映了簇的凝聚度,一般使用组内误差平方(SSE)表示:
    640?wx_fmt=png

    簇的邻近度

    簇的邻近度用组间平方和(SSB)表示,即簇的质心640?wx_fmt=png到簇内所有数据点的总平均值640?wx_fmt=png的距离的平方和

    2.2 外部质量评价标准

    外部质量评价指标是基于已知分类标签数据集进行评价的,这样可以将原有标签数据与聚类输出结果进行对比。外部质量评价指标的理想聚类结果是:具有不同类标签的数据聚合到不同的簇中,具有相同类标签的数据聚合相同的簇中。外部质量评价准则通常使用熵,纯度等指标进行度量。

    熵:

    簇内包含单个类对象的一种度量。对于每一个簇,首先计算数据的类分布,即对于簇640?wx_fmt=png,计算簇640?wx_fmt=png的成员属于类640?wx_fmt=png的概率
    640?wx_fmt=png
    其中640?wx_fmt=png表示簇640?wx_fmt=png中所有对象的个数,而640?wx_fmt=png是簇640?wx_fmt=png中类640?wx_fmt=png的对象个数。使用类分布,用标准公式:
    640?wx_fmt=png
    计算每个簇640?wx_fmt=png的熵,其中K是类个数。簇集合的总熵用每个簇的熵的加权和计算即:
    640?wx_fmt=png
    其中640?wx_fmt=png是簇的个数,而640?wx_fmt=png是簇内数据点的总和

    纯度:

    簇内包含单个类对象的另外一种度量。簇640?wx_fmt=png的纯度为640?wx_fmt=png,而聚类总纯度为:
    640?wx_fmt=png

    欢迎关注磐创博客资源汇总站:
    http://docs.panchuang.net/

    欢迎关注PyTorch官方中文教程站:
    http://pytorch.panchuang.net/

  • 相关阅读:
    命名对象继承2-验证Open*命名对象安全属性的传递
    命名对象继承1-验证Create*命名对象安全属性的传递
    讨论c/c++计算小数的精度问题
    隐藏进程名
    一个函数重载问题
    02-Python基础之列表
    01-Python基础之字符串
    django 实用工具dj-database-url 快速配置数据库
    Gerrit安装配置
    关于数学的摘抄
  • 原文地址:https://www.cnblogs.com/panchuangai/p/12568033.html
Copyright © 2011-2022 走看看