机器学习之聚类学习

聚类算法

  • 概念

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

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

    • 无监督学习算法

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值