机器学习之聚类学习

机器学习之聚类学习

码农世界 2024-05-29 前端 81 次浏览 0个评论

聚类算法

  • 概念

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

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

    • 无监督学习算法

  • 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达到的目的:用尽量少类别聚类尽量多的样本,同时获得较好的聚类效果

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

转载请注明来自码农世界,本文标题:《机器学习之聚类学习》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,81人围观)参与讨论

还没有评论,来说两句吧...

Top