机器学习之聚类学习

聚类算法

  • 概念

    • 根据样本之间相似性,将样本划分到不同类别种,不同相似度计算方法,会得到不同聚类结果,常用相似度计算方法为:欧氏距离

    • 目的是在没有先验知识情况下,自动发现数据集种内在结构和模式

    • 无监督学习算法

  • API

    sklearn.cluster.KMeans(n_clusters=8)

    • 参数:n_clusters:开始聚类中序数量

      • 整型状,缺省值=8,生成聚类数,即产生质心(centroids)数

    • 方法

      • estimator.fit(x)

      • estimator.predict(x)

      • estimator.fit_predict(x)

        计算聚类中心并预测每个样本属于哪个类别,相当于先调用fit(x,在调用predict(x)

  • KMeans算法实现流程

    • 先确定一个常数k,该常数意味最终聚类类别数

    • 随机选择k个样本作为初始聚类中心

    • 计算每个样本到k个中心聚类,选择最近聚类中心作为标记类别

    • 根据每个类别样本点,重新计算出新聚类中心点(平均值),若计算出的新中心与原中心点重叠,则停止聚类,否重新进行第2步过程,直到聚类中心不再变化

  • 评估指标

    • SSE(误差平方和)

      SSE越小,表示数据点越接近它们中心,聚类效果越好

      • "肘"方法(Elbow method) - k值确定

        "肘" 方法通过SSE确定n_clusters值

      • 对于n个数据集,迭代计算k from i to n,每次聚类完成后计算SSE

      • SSE是会逐渐变小,因为每个点都是它所在的簇中心本身

      • SSE变化过程中出现一个拐点,下降率突然变缓时即人为是最佳n_clusters值

      • 在决定什么时候停止训练时,肘形判断同样有效,数据通常有更多噪音,在增加分类无法带来更多汇报时,即停止增加类别

      • SC (轮廓系数法)

        轮廓系数法考虑簇内的内聚程度(Cohesion),簇外的分离程度(Separation)

        • 计算过程

          • 对计算每一个样本i到同簇内其他样本平均距离ai,该值越小,说明簇内相似程度越大

          • 计算每一个样本i最近簇j内所有样本平均距离bij,该值越大,说明该样本越不属于其他簇j

          • 根据下方公式计算该样本轮廓系数

          • 计算所有样本平均轮廓系数

          • 轮廓系数范围:[-1,1],SC值越大聚类效果越好

      • CH (聚类效果评估-CH轮廓系数法)

        CH系数考虑簇内的内聚程度、簇外的离散程度、质心的个数

        • 类别內部数据距离平方和越小越好,类别之间距离平方和越大越好。聚类种类数越少越好

    • 简写:

      • 误差平方和SSE

        • 误差平方和值越小越好

        • 主要考量:簇内聚程度

      • 肘部法

        • 下降率突然变缓时即认为是最佳的k值

      • SC系数

        • 取值为[-1,1],其值越大越好

        • 主要考量:簇内聚程度、簇间分离程度

      • CH系数

        • 分数s高则聚类效果越好

        • CH达到的目的:用尽量少类别聚类尽量多的样本,同时获得较好的聚类效果

        • 主要考量:簇内聚程度、簇间分离程度、质心个数

相关推荐

  1. 机器学习K-medians

    2024-05-25 23:08:44       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-25 23:08:44       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-25 23:08:44       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-25 23:08:44       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-25 23:08:44       18 阅读

热门阅读

  1. 机器学习 - 模型训练

    2024-05-25 23:08:44       13 阅读
  2. 初说Stable Diffusion

    2024-05-25 23:08:44       9 阅读
  3. python list 重复元素不会覆盖

    2024-05-25 23:08:44       9 阅读
  4. 书籍推荐计算机相关

    2024-05-25 23:08:44       9 阅读
  5. websocket的压缩和wireshark如何解码tls

    2024-05-25 23:08:44       14 阅读
  6. k8s笔记 | helm包管理

    2024-05-25 23:08:44       12 阅读
  7. 「大数据」Kappa架构

    2024-05-25 23:08:44       12 阅读
  8. 视觉SLAM-基本原理

    2024-05-25 23:08:44       10 阅读
  9. Oracle索引介绍(简述、创建、维护等)

    2024-05-25 23:08:44       11 阅读
  10. EventSource

    2024-05-25 23:08:44       16 阅读