|如何评估聚类模型?兰德指数、轮廓系数、Calinski Harabaz指数( 二 )
值得一提的是 , 还有另一种常见的聚类类型 , 即K-Means , 其工作原理略有不同 。 HAC通过将它们合并在一起来迭代地减少聚类的数量 , 而K-Means聚类保持固定数量的聚类(名义上的k) , 但是迭代地更改每个聚类的成员 。
本文插图
【|如何评估聚类模型?兰德指数、轮廓系数、Calinski Harabaz指数】每个群集的''中心''由带有黑色'' +''号的''大''标记表示 。 所有点都分配给它们最接近中心的聚类 。 在此分配步骤之后 , 将重新计算群集中心以包括新成员 , 然后发生另一个重新分配步骤 。 如果在重新分配步骤中没有点更改聚类 , 则算法结束(动画:) 。
K-Means很容易在Python中实现:
#We scale the data to ensure that #feature units don't impact distances from sklearn.preprocessing import StandardScaler sclaer = StandardScaler() X_scaled = scaler.fit_transform(X)#This scaled data can then be fed into the K-Means alorithm from sklearn.cluster import KMeans #We can tell it how many clusters we're aiming for km_clust = KMeans(n_clusters=4) assigned_clusters = km_clust.fit_predict(X_scaled)如果将K-Means聚类应用于播放列表数据集 , 则会得到以下信息:
本文插图
与使用''ward''链接的HAC算法一样 , K-Means聚类在大多数算法中都做得很好 , 一些爵士乐和说唱歌曲对K-Pop来说是''错误的'' 。
尽管这些矩阵可以很好地''盯住''我们的结果 , 但它们在数学上还不够严格 。 让我们考虑一些指标 , 这些指标实际上可以帮助我们为集群质量分配一个数字 。
调整后的Rand Index(兰德指数)
该是对经典兰德指数的变化 , 并试图表达什么群集分配比例是''正确'' 。 通过考虑所有样本对 , 并根据预测的真实聚类对分配在预测的相同或不同聚类中的对进行计数 , 并针对随机机会进行调整 , 计算出两个不同聚类之间的相似性度量 。
可以使用Scikit-Learn评估此(以及我们将考虑的其他指标) 。
from sklearn import metrics metrics.adjusted_rand_score(predicted_labels, actual)调整后的兰德指数限制在-1和1之间 。 接近1表示好 , 而接近-1表示差 。
本文插图
我们看到K均值和Ward Linkage得分很高 。 基于我们先前观察到的矩阵 , 我们期望得到这一结果 。
Fowlkes Mallows Score
该是相似的 , 在尽可能多的 , 它会告诉你哪个集群分配是''正确''的程度 。 特别是 , 它计算精度和召回率之间的几何平均值 。 它的范围是0到1 , 值越高越好 。
metrics.fowlkes_mallows_score(predicted_labels , actual)
本文插图
我们的排名与调整后的兰德指数相似 , 这是我们期望的 , 因为它们是尝试回答同一问题的两种方法 。
值得注意的是 , 我们需要了解原始标签才能计算这些指标 。 鉴于处理无标签数据是无监督学习的主要用例之一 , 因此我们需要一些其他指标来评估聚类结果 , 而无需引用''真实''标签 。
假设我们从三个单独的聚类分析中得到以下结果 。
本文插图
推荐阅读
- 模型|REVIT技巧!如何创建能量模型,实现能量优化
- 技术编程|如何利用数据库进行世界史研究
- 区块链|欧科云链任煜男做客西安广电电台节目,解读区块链如何赋能实体产业
- 苹果笔记本|如何让macbook合上时工作?解决苹果电脑合盖自动休眠问题-macw
- |如何分析“会员数据”,强化门店的竞争力?
- 拍照摄影|如何拍出赞爆朋友圈的自拍照?网红小姐姐公开拍照神器
- IOS系统|苹果免签封装如何实现?苹果免签封装会不会掉签?
- 帧数|帧数提升70% NV黑科技DLSS如何开启
- 拍照摄影|即将进入大学的新生想入手一台相机,该如何选?
- 月球|月球遗产如何保护?