机器学习的评价指标-Rand index

本文深入探讨了机器学习中的聚类评价指标,重点关注Rand Index(兰德指数)及其调整版本Adjusted Rand Index(ARI)。 Rand Index衡量了实际类别与聚类结果的一致性,而ARI通过校正随机分布的影响,提供了一个更可靠的比较标准,其值在[-1,1]之间,1表示完美匹配。这两种指标在无监督学习中用于评估聚类算法的效果,特别是在未知真实标签的情况下比较不同聚类模型的性能。" 129484127,12863582,STM32+ESP8266 温湿度上传到OneNet HTTP 实践教程,"['STM32开发', '物联网', '嵌入式硬件', 'ESP8266开发', '数据上传']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面这篇博客中分类别 介绍了很多机器学习方法的评价指标,比较全面:
http://www.cnblogs.com/zhaokui/p/ml-metric.html

一、聚类结果的评价指标
1、Rand index 或者 Rand measure(兰德指数)
维基百科比较详细:https://en.wikipedia.org/wiki/Rand_index
兰德指数需要给定实际类别信息C,假设K是聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数。评价同一object在两种分类结果中是否被分到同一类别。
在这里插入图片描述
2、ARI(Adjusted Rand index)
ARI 需要用到contingency table:
在这里插入图片描述
调整后的ARI为:
在这里插入图片描述

### 如何实现和评估K-means聚类算法的效果 #### 使用Python实现K-means聚类算法并进行效果评估 为了展示如何利用`sklearn.cluster.KMeans`方法实现K-means聚类,并对其进行性能评价,可以采用如下方式: ```python from sklearn.datasets import make_blobs from sklearn.cluster import KMeans import matplotlib.pyplot as plt from sklearn.metrics import silhouette_score, adjusted_rand_score from yellowbrick.cluster import SilhouetteVisualizer # 创建模拟数据集 X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0) # 应用KMeans聚类模型 kmeans_model = KMeans(n_clusters=4) y_kmeans = kmeans_model.fit_predict(X) # 可视化原始数据及其真实标签分配情况 plt.scatter(X[:, 0], X[:, 1], c=y_true, s=50, cmap='viridis') centers = kmeans_model.cluster_centers_ plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.75); ``` 上述代码片段展示了创建合成数据集的过程以及应用KMeans模型对该数据集执行聚类操作的方法[^1]。 接着,在完成聚类之后,还需要考虑如何衡量所得到的结果质量。常用的度量指标包括轮廓系数(Silhouette Coefficient) 和调整兰德指数 (Adjusted Rand Index): - **轮廓系数**反映了单个样本与其所在簇内其他成员之间的紧密程度对比它与其他最近邻近簇的关系;取值范围[-1,+1]之间,越接近+1表示越好。 - **调整兰德指数**用来比较两个不同分组方案的一致性水平;同样地,该分数越高意味着更好的一致性。 下面是计算这两个评分的例子: ```python print(f'Silhouette Score: {silhouette_score(X, y_kmeans)}') # 假设已知真实的类别标签,则可进一步计算ARI得分 print(f'Adjusted Rand Index: {adjusted_rand_score(y_true, y_kmeans)}') ``` 此外,还可以借助可视化工具直观感受各个簇内部结构特性。例如使用Silhouette Visualizer绘制每条记录对应的轮廓宽度直方图,帮助更清晰地观察到哪些点可能是异常值或是位于边界位置上的不确定区域内的实例。 ```python visualizer = SilhouetteVisualizer(kmeans_model, colors='yellowbrick') visualizer.fit(X) # Fit the data to the visualizer visualizer.show() # Finalize and render the figure ``` 以上就是关于如何基于Python环境下的Scikit-Learn库来实施K-means聚类分析过程的一个简单介绍[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值