常用的评估指标

本文详细介绍了机器学习中的关键评估指标,包括准确率、精确率、召回率、F1-score及其在混淆矩阵中的定义。同时,讨论了ROC曲线和PR曲线,强调了AUC和AP的重要性,并解释了它们在不同场景下的应用。此外,还提及了IoU和Dice、Jaccard相似系数在评估模型性能中的作用。内容涵盖了如何通过这些指标优化模型,并分析了不同指标在正负样本不平衡情况下的适用性。

准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-score

在这里插入图片描述
TP, FP, FN, TN所组成的2x2矩阵即为混淆矩阵(Confusion matrix)
注意sklearn.metrics.confusion_matrix()得到混淆矩阵的形状为(区别于上图)
[[TN FP]
[FN TP]]

特异性(specificity, SP) ,即预测为负类的正确率

在这里插入图片描述

召回率(Recall) = 真正率(true positive rate, TPR) = 灵敏度(sensitivity, SE)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

=TP/正类样本数

假正率(false positive rate, FPR) = 1-特异度

在这里插入图片描述

=FP/负类样本数

ROC曲线

ROC是以FPR为x轴,TPR为y轴得到的曲线。
从FPR和TPR的定义可以理解,俩分母固定,为负、正类样本数;俩分子之和也固定(同一阈值),为预测为正的样本数。但注意不能说TP越大,FP越小,也不是说TPR越大,FPR越小。因为这些值都已经在阈值确定的情况下固定下来了。正确的表述应该是,我们想要得到更优的模型,应该让TPR尽可能大,FPR尽可能小。还要注意FPR和TPR的和不是1。
过程可参考
在这里插入图片描述
在这里插入图片描述

AUC值(Area Under Curve)

AUC表示曲线下方的面积。(ROC和PR只是一条曲线,而AUC是一个数值,数值可以更好的对模型进行量化,所以在评价模型的时候通常会使用AUC进行比较。)
在这里插入图片描述

对于ROC曲线来说,AUC的值越大(即曲线越靠近左上角),说明模型越优(随着阈值的降低,在召回率增大的同时依旧能够保持很小的错误率)。
对于PR曲线来说,我们希望Recall和Precision同时越大越好,所以PR曲线越靠近右上角说明模型越优。

PR曲线

以Recall为x轴,Precision为y轴得到的曲线。
一个阈值对应一个混淆矩阵,也对应一个FPR、TPR、Recall、Precision,所以可以说每一个ROC曲线都有唯一的一个PR曲线与之对应。

在这里插入图片描述
ROC曲线和PR曲线更进一步的关系:在ROC中若曲线L1高于L2,则在PR中L1也高于L2,反之成立。具体可参考
关于sklearn.metrics.precision_recall_curve()函数返回的precision和 recall最后对应的1和0没有对应的阈值,以及关于函数如何选择阈值步长等问题,可参考。此外若使用np.trapz()计算面积时记得将precision和 recall进行np.fliplr()翻转,防止计算得到负的AUC值。

平均精度(Average-Precision,AP)与 mean Average Precision(mAP)

PR曲线除了与ROC曲线一样有个AUC指标外,还有一个AP指标表示PR曲线下面的面积,两者有些许区别,AUC计算面积使用梯形块分割,AP使用矩阵块分割。
  AP计算可用sklearn.metrics.average_precision_score(y, pred)
  AUC_PR的计算可用sklearn.metrics.auc(recall, precision)或np.trapz(precision, recall)【两者结果相同】
  通常来说一个越好的分类器,AP值也越高。
  mAP是多个类别AP的平均值。这个mean的意思是对每个类的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。
  在正样本非常少的情况下,PR表现的效果会更好。

ROC和PR的适用场景

Recall与TPR等价。当FP值不同的时候,Precision值更能够反映出模型之间的差异
ROC曲线:对正负两类同样关心
PR曲线:对正类更加关心
当正负样本数量差距极大时,ROC曲线不敏感,所以要用PR曲线。但同时也揭示了ROC的一个优点,当样本数量变化时,ROC具有稳定性。
具体可参考

IoU:重叠度(Intersection of Union)

IoU这一值,可以理解为系统预测出来的框与原来图片中标记的框的重合程度。 计算方法即检测结果Detection Result与 Ground Truth 的交集比上它们的并集,即为检测的准确率。
在这里插入图片描述

Dice相似系数(Dice Similariy Coefficient,DSC)【与F1-score相同】

Dice系数是一种集合相似度度量指标,通常用于计算两个样本的相似度,值的范围 0-1 ,分割结果最好时值为 1 ,最差时值为 0.
在这里插入图片描述

Jaccard相似系数(Jaccard index / Jaccard similarity coefficient,JI / JSC)

Jaccard index, 又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。
在这里插入图片描述
在这里插入图片描述

<think>好的,我现在要回答用户关于聚类模型常用评价指标的问题。用户提到了轮廓系数、DB指数和调整兰德指数等,可能希望了解这些指标的具体内容、计算方法以及应用场景。我需要先回忆相关知识,确保正确性,并参考提供的引用内容。 首先,用户提供的引用[1]中提到了轮廓系数,引用[2]提到了戴维森-博尔丁指数(DB指数)。我需要结合这些信息,并补充其他指标如调整兰德指数等。 接下来,我需要整理常见的评价指标,确保覆盖用户提到的内容。可能包括: 1. 轮廓系数(Silhouette Coefficient):已提到,需要详细解释如何计算以及如何解读结果。 2. 戴维森-博尔丁指数(Davies-Bouldin Index,DB指数):同样需要说明计算方式和应用。 3. 调整兰德指数(Adjusted Rand Index,ARI):用于有真实标签时的评估,需要解释其与兰德指数的区别。 4. 同质性(Homogeneity)和完整性(Completeness):可能也是常用指标。 5. Calinski-Harabasz指数:另一个内部评估指标。 需要确认每个指标的定义、公式(可能需要使用LaTeX)、适用场景以及优缺点。同时,根据用户提供的引用内容,引用[2]中的代码示例可以辅助说明轮廓系数的计算,但用户的问题是关于指标有哪些,所以可能需要更多理论解释。 另外,用户可能需要知道如何选择适合的指标,比如在有标签时使用调整兰德指数,无标签时使用轮廓系数或DB指数。需要区分内部评估和外部评估指标。 需要检查是否有遗漏的重要指标,例如互信息(Mutual Information)或标准化互信息(NMI),不过用户没有提到,但可能需要简要提及。 在组织内容时,应该分点说明每个指标,包括定义、公式、优缺点和应用场景。同时,确保LaTeX公式的正确格式,行内公式用$...$,独立公式用$$...$$。例如,轮廓系数的计算公式可能需要独立公式块。 还要注意引用标记的位置,例如引用[1]和引用[2]在对应的指标后面添加。 最后,生成相关问题,可能需要涵盖不同指标的比较、如何选择指标、各指标的计算示例等。</think>聚类模型的常用评价指标可分为内部评估(无真实标签)和外部评估(有真实标签)两类,以下是主要指标及其特点: ### 一、内部评估指标(无需真实标签) 1. **轮廓系数(Silhouette Coefficient)** 计算每个样本的轮廓值,范围$[-1,1]$,值越大表示聚类效果越好。 $$ s_i = \frac{b_i - a_i}{\max(a_i, b_i)} $$ - $a_i$:样本$i$到同簇其他样本的平均距离 - $b_i$:样本$i$到最近其他簇样本的平均距离 **优点**:直观反映聚类紧密性和分离性[^2] 2. **戴维森-博尔丁指数(Davies-Bouldin Index, DB指数)** 计算簇间分离度与簇内紧密度之比,值越小越好。 $$ DB = \frac{1}{k} \sum_{i=1}^k \max_{j \neq i} \left( \frac{\sigma_i + \sigma_j}{d(c_i,c_j)} \right) $$ - $\sigma_i$:簇$i$内样本到质心的平均距离 - $d(c_i,c_j)$:簇$i$和$j$质心间距 **优点**:计算效率高,适合对比不同聚类方案 3. **Calinski-Harabasz指数** 通过簇间离散度与簇内离散度的比值评估,值越大越好。 $$ CH = \frac{\text{Tr}(B_k) \times (n - k)}{\text{Tr}(W_k) \times (k - 1)} $$ - $B_k$:簇间协方差矩阵 - $W_k$:簇内协方差矩阵 ### 二、外部评估指标(需真实标签) 1. **调整兰德指数(Adjusted Rand Index, ARI)** 修正兰德指数以消除随机影响,范围$[-1,1]$,1表示完全匹配。 $$ ARI = \frac{\text{RI} - E[\text{RI}]}{\max(\text{RI}) - E[\text{RI}]} $$ **特点**:对标签排列具有不变性 2. **标准化互信息(Normalized Mutual Information, NMI)** 衡量聚类结果与真实标签的信息重叠度,范围$[0,1]$。 $$ NMI = \frac{2 \cdot I(Y;C)}{H(Y) + H(C)} $$ - $I(Y;C)$:互信息 - $H(Y)$:真实标签熵 - $H(C)$:聚类结果熵 ### 三、指标选择建议 | 场景 | 推荐指标 | |--------------------|-----------------------| | 无监督聚类对比 | 轮廓系数、DB指数 | | 已知真实分类 | 调整兰德指数、NMI | | 高维数据 | Calinski-Harabasz指数 | ```python # 轮廓系数计算示例(引用[2]代码补充) from sklearn.metrics import silhouette_score score = silhouette_score(X, kmeans.labels_) # 调整兰德指数计算示例 from sklearn.metrics import adjusted_rand_score ari = adjusted_rand_score(true_labels, pred_labels) ``` 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值