机器学习(03)—性能度量

本文详细介绍了机器学习中回归、分类和聚类模型的性能度量,包括均方误差、错误率、精度、查准率、查全率、F1分数、ROC曲线和AUC,以及代价敏感错误率等关键概念,旨在帮助理解模型评估的重要性及其适用场景。


对机器学习的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,即性能度量(performance measure)

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。

1. 回归模型的性能度量

给定样例集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) , } D=\{(x_1,y_1),(x_2,y_2)...(x_m,y_m),\} D={(x1,y1),(x2,y2)...(xm,ym),},其中 y i y_i yi是示例 x i x_i xi的真实输出。要评估学习器 f f f的性能,就要把学习器预测结果 f ( x ) f(x) f(x)与真实输出 y i y_i yi进行比较。

回归任务最常用的性能度量是“均方误差”(mean squared error)
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 (1) E(f;D) = \frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2\tag1 E(f;D)=m1i=1m(f(xi)yi)2(1)
更一般的,对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(\cdot) p(),均方误差可描述为
E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x (2) E(f;D) = \int_{x\sim D}(f(x)-y)^2p(x)dx\tag2 E(f;D)=xD(f(x)y)2p(x)dx(2)

2. 分类模型的性能度量

2.2 错误率与精度

错误率和精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务。错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。对样例集 D D D分类错误率定义为
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) ≠ y i ) (3) E(f;D) = \frac{1}{m}\sum_{i=1}^m(f(x_i)\neq y_i)\tag3 E(f;D)=m1i=1m(f(xi)=yi)(3)
精度则定义为
a c c ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) = y i ) = 1 − E ( f ; D ) (4) acc(f;D) = \frac{1}{m}\sum_{i=1}^m(f(x_i)= y_i)\\ = 1-E(f;D)\tag4 acc(f;D)=m1i=1m(f(xi)=yi)=1E(f;D)(4)
更一般的,对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(\cdot) p(),错误率与精度可分别描述为
E ( f ; D ) = ∫ x ∼ D ( f ( x ) ≠ y ) 2 p ( x ) d x (5) E(f;D) = \int_{x\sim D}(f(x)\neq y)^2p(x)dx\tag5 E(f;D)=xD(f(x)=y)2p(x)dx(5)
a c c ( f ; D ) = ∫ x ∼ D ( f ( x ) = y ) 2 p ( x ) d x = 1 − E ( f ; D ) (6) acc(f;D) = \int_{x\sim D}(f(x)= y)^2p(x)dx\\ = 1-E(f;D)\tag6 acc(f;D)=xD(f(x)=y)2p(x)dx=1E(f;D)(6)

2.3 查准率、查全率与F1

错误率和精度虽常用,但并不能满足所有任务需求。例如在信息检索中,我们经常会关心“检索出的信息中有多少比例是用户感兴趣的”,“用户感兴趣的信息中有多少被检索出来了”。“查准率”(precision)与“查全
率”(recall)是更为适用于此类需求的性能度量。

对于二分类问題,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN分别表示其对应的样例数,显然有 T P + F P + T N + F N = m TP+FP+TN+FN=m TP+FP+TN+FN=m(m为样例总数)、分类结果的“混淆矩阵”(confusion matrix)如表所示:

真实情况预测正例预测反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

查准率 P P P与查全率 R R R分别定义为:
P = T P T P + F P (7) P = \frac{TP}{TP+FP}\tag7 P=TP+FPTP(7)
R = T P T P + F N (8) R = \frac{TP}{TP+FN}\tag8 R=TP+FNTP(8)

查准率与查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
P-R曲线与平衡点示意图:
在这里插入图片描述
P-R图直观地显示出学习器在样本总体上的杳全率、查准率,在进行比较时:

  1. 若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,例如图中学习器A的性能优于学习器C;
  2. 如果两个学习器的P-R曲线发生了交又,例如图中的A与B,则难以一般性地断言两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较。

然而,在很多情形下,人们往往仍希望即使学习器A与BPR曲线发生也能比出个高低.这时一个比较合理的判据是比较P-R曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对“双高“的比例,但这个值不太容易估算,因此,人们设计了一些综合考虑杳准率、杳全率的性能度量——”平衡点“(Break-EventPoint,筒称BEP)。它是“查准率=查全率”时的取值,例如图中学习器C的BEP是0.64,而基于BEP的比较,可认为学习器A优于B。

但BEP还是过于简化了些,更常用的是F1度量:
F 1 = 2 P R P + R = 2 T P m + T P − T N (9) F1=\frac{2PR}{P+R} = \frac{2TP}{m+TP-TN}\tag9 F1=P+R2PR=m+TPTN2TP(9)

在一些应用中,对查准率和查全率的重视程度有所不同.例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。

F β F_\beta Fβ能表达出对查准率/查全率的不同偏好,它定义为
F β = ( 1 + β 2 ) P R β 2 P + R (10) F_\beta=\frac{(1+\beta^2)PR}{\beta^2P+R}\tag{10} Fβ=β2P+R(1+β2)PR(10)
其中 β ( β > 0 ) \beta(\beta>0) β(β>0)度量了查全率对查准率的相对重要性。 β = 1 \beta=1 β=1时为标准的 F 1 F1 F1 β > 1 \beta>1 β>1时查全率有更大影响; β < 1 \beta<1 β<1时查准率有更大影响。

多个二分类混淆矩阵的查准率和查全率参考西瓜书P32。

2.4 ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。例如,神经网络在一般情形下是对每个测试样本预测出一个 [ 0 , 1 ] [0,1] [0,1]之间的实值,然后将这个值与0.5进行比较,大于0.5则判为正例,否则为反例。这个实值或
概率预测结果的好坏,直接决定了学习器的泛化能力。实际上,根据这个实值或概率预测结果,可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个“截断点”(cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。

在不同的应用任务中,可根据任务需求来采用不同的截断点,例如若更重视“查准率”,则可选择排序中靠前的位置进行截断;若更重视“查全率”,则可选择靠后的位置进行截断,因此,排序质量的好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,与P-R曲线相似,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了"ROC曲线”。与P-R曲线使用查准率、查全率为纵、横轴不同,ROC曲线的纵轴是“真正例率”(True Positive Rate,简称TPR),横轴是“假正例率”(False Positive Rate,简称FPR),两者分别定义为:
T P R = T P T P + F N (11) TPR = \frac{TP}{TP+FN}\tag{11} TPR=TP+FNTP(11)
F P R = F P T N + F P (12) FPR = \frac{FP}{TN+FP}\tag{12} FPR=TN+FPFP(12)
显示ROC曲线的图称为"ROC图”下图给出了一个示意图,显然,对角线对应于“随机猜测”模型,而点 ( 0 , 1 ) (0,1) (0,1)则对应于将所有正例排在所有反例之前的“理想模型”
在这里插入图片描述
现实任务中通常是利用有限个測试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对,无法产生上图(a)中的光滑ROC曲线,只能绘制出上图(b)所示的近似ROC曲线,绘图过程很简单:给定 m + m^+ m+个正例和 m − m^- m个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点.然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例,设前一个标记点坐标为 ( x , y ) (x,y) (x,y),当前若为真正例,则对应标记点的坐标为 ( x , y + 1 m + ) (x,y+\frac{1}{m^+}) (x,y+m+1);当前若为假正例,则对应标记点的坐标为 ( x + 1 m − , y ) (x+\frac{1}{m^-},y) (x+m1,y)。然后用线段连接相邻点即得.

进行学习器的比较时,与P-R图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣,此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve ),如上图所示,从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得.假定ROC曲线是由坐标为 { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) } \{(x_1,y_1),(x_2,y_2)...(x_m,y_m)\} {(x1,y1),(x2,y2)...(xm,ym)}的点按序连接而形成 { x 1 = 0 , x m = 1 } \{x_1=0,x_m=1\} {x1=0,xm=1},参见上图(b),则AUC可估算为:
A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + 1 + y i ) (13) AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)(y_{i+1}+y_i) \tag{13} AUC=21i=1m1(xi+1xi)(yi+1+yi)(13)
Python实现:
ROC——sklearn.metrics.roc_curve
AUC——sklearn.metrics.auc

import numpy as np
import matplotlib.pyplot as plt

from sklearn import svm, datasets
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier

# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

# 二值化标签(y)
y = label_binarize(y, classes=[0, 1, 2])
n_classes = y.shape[1]

random_state = np.random.RandomState(0)

# 混洗数据并划分训练测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5,
                                                    random_state=0)

# 训练模型
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, random_state=random_state))
y_score = classifier.fit(X_train, y_train).decision_function(X_test)  # 返回为肯定类别的概率估计值

# 计算每个类别的ROC和AUC
fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])  # 返回假正例率(依次增加)和真正例率(依次增加)
    roc_auc[i] = auc(fpr[i], tpr[i])

# 计算micro-average ROC和AUC
fpr["micro"], tpr["micro"], _ = roc_curve(y_test.ravel(), y_score.ravel())
roc_auc["micro"] = auc(fpr["micro"], tpr["micro"])

plt.figure()
lw = 2
plt.plot(fpr[0], tpr[0], color='green', lw=lw, label='1# ROC curve (area = %0.3f)' % roc_auc[0])
plt.plot(fpr[1], tpr[1], color='blue', lw=lw, label='2# ROC curve (area = %0.3f)' % roc_auc[1])
plt.plot(fpr[2], tpr[2], color='red', lw=lw, label='3# ROC curve (area = %0.3f)' % roc_auc[2])
plt.plot(fpr["micro"], tpr["micro"], color='darkorange', lw=lw, label='micro ROC curve (area = %0.3f)' % roc_auc["micro"])
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

在这里插入图片描述
在这里插入图片描述
由分类图可以看出,蓝色部分(对应1#类型)分类完全正确,对应ROC曲线中的绿色曲线。土黄色部分(对应2#类型)对应ROC蓝色曲线,其正确率最低。鹅黄色部分(对应3#类型)对应ROC红色曲线。

2.5 代价敏感错误率与代价曲线

在现实任务中常会遇到这样的情况:不同类型的错误所造成的后果不同。例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机;再如,门禁系统错误地把可通行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故,为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。

以二分类任务为例,可根据任务的领域知识设定一个“代价矩阵”(cost matrix),如表所示,其中 c o s t i j cost_{ij} costij,表示将第 i i i类样本预为第 j j j类样本的代价。一般来说, c o s t i i = 0 cost_{ii}=0 costii=0;若将第0类判别为第1类所造成的损失更大,则 c o s t 01 > c o s t 10 cost_{01}>cost_{10} cost01>cost10;损失程度相差越大, c o s t 01 cost_{01} cost01 c o s t 10 cost_{10} cost10值的差别越大。
二分类代价矩阵:

真实类别预测0类预测1类
0类0 c o s t 01 cost_{01} cost01
1类 c o s t 10 cost_{10} cost100

在非均等代价下,希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”,若将表中的第0类作为正类、第1类作为反类,令 D + D^+ D+ D − D^- D分别代表样例集D的正例子集和反例子集,则“代价敏感”(cost sensitive)错误率为
E ( f ; D ; c o s t ) = 1 m ( ∑ x ∈ D + ( f ( x i ) ≠ y i ) c o s t 01 + ∑ x ∈ D − ( f ( x i ) ≠ y i ) c o s t 10 ) (14) E(f;D;cost) = \frac{1}{m}(\sum_{x \in D^+}(f(x_i)\neq y_i)cost_{01}+\sum_{x \in D^-}(f(x_i)\neq y_i)cost_{10})\tag{14} E(f;D;cost)=m1(xD+(f(xi)=yi)cost01+xD(f(xi)=yi)cost10)(14)
非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”(cost curve)则可达到该目的.代价曲线图的横轴是取值为[0,1]的正例概率代价
P ( + ) c o s t = p ⋅ c o s t 01 p ⋅ c o s t 01 + ( 1 − p ) ⋅ c o s t 10 (15) P(+)_{cost}=\frac{p\cdot cost_{01}}{p\cdot cost_{01}+(1-p)\cdot cost_{10}} \tag{15} P(+)cost=pcost01+(1p)cost10pcost01(15)
其中p是样例为正例的概率。纵轴是取值为[0,1]的归一化代价
c o s t n o r m = F N R ⋅ p ⋅ c o s t 01 + F P R ⋅ ( 1 − p ) ⋅ c o s t 10 p ⋅ c o s t 01 + ( 1 − p ) ⋅ c o s t 10 (16) cost_{norm} = \frac{FNR\cdot p\cdot cost_{01}+FPR\cdot (1-p)\cdot cost_{10}}{p\cdot cost_{01}+(1-p)\cdot cost_{10}}\tag{16} costnorm=pcost01+(1p)cost10FNRpcost01+FPR(1p)cost10(16)
其中 F P R FPR FPR是式(12)定义的假正例率, F N R = 1 一 T P R FNR=1一TPR FNR=1TPR是假反例率.代价曲线的绘制很简单:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为 ( T P R , F P R ) (TPR,FPR) (TPRFPR),则可相应计算出 F N R FNR FNR,然后在代价平面上绘制一条从 ( 0 , F P R ) (0,FPR) (0FPR) ( 1 , F N R ) (1,FNR) (1FNR)的线段,线段下的面积即表示了该条件下的期总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价,如图所示。
在这里插入图片描述

3. 聚类模型的性能度量

聚类模型的性能度量亦称聚类有效性指标(validity index)。与监督学习中的性能度量相似,对聚类结果,需要通过某种性能度量来评估其好坏;另一方面若明确了最终将要使用的性能度量,则可以直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。

聚类是将样本集 D D D划分为若干互不相交的子集,即样本簇。则聚类结果应当”簇内相似度“高且”簇间相似度“低。聚类的性能度量主要划分为两类:

  1. ”外部指标“,将聚类结果与某个参考指标相比较。
  2. ”内部指标“,直接考察聚类模型而不用任何参考模型。

对数据集 D = { x 1 , x 2 . . . x m } D=\{x_1,x_2...x_m\} D={x1,x2...xm},假定通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck},参考模型划出的簇为 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ } C^*=\{C_1^*,C_2^*,...,C_s^*\} C={C1,C2,...,Cs}。相应的,令 λ \lambda λ λ ∗ \lambda^* λ分别表示 C C C C ∗ C^* C对应的簇标记向量。将样本两两配对,定义:
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } a=|SS|,SS=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda_i^*=\lambda_j^*,i<j\} a=SS,SS={(xi,xj)λi=λj,λi=λj,i<j}
b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } b=|SD|,SD=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda_i^*\neq\lambda_j^*,i<j\} b=SD,SD={(xi,xj)λi=λj,λi=λj,i<j}
c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } c=|DS|,DS=\{(x_i,x_j)|\lambda_i\neq\lambda_j,\lambda_i^*=\lambda_j^*,i<j\} c=DS,DS={(xi,xj)λi=λj,λi=λj,i<j}
d = ∣ D D ∣ , D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } d=|DD|,DD=\{(x_i,x_j)|\lambda_i\neq\lambda_j,\lambda_i^*\neq\lambda_j^*,i<j\} d=DD,DD={(xi,xj)λi=λj,λi=λj,i<j}
其中集合 S S SS SS包含了在 C C C中隶属于相同簇且在 C ∗ C^* C中也隶属于相同簇的样本对,集合 S D SD SD包含了在 C C C中隶属于相同簇但在 C ∗ C^* C中隶属于不同簇的样本对,…由于每个样本对 ( x i , x j ) , i < j (x_i,x_j),i<j (xi,xj),i<j仅能出现在一个集合中,因此 a + b + c + d = m ( m − 1 ) / 2 a+b+c+d=m(m-1)/2 a+b+c+d=m(m1)/2成立。

基于上式,可导出以下这些常用的聚类性能度量外部指标:
Jaccard系数(Jaccard Coefficient):
J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca
FMI系数(Fowlkes and Mallows Index):
F M I = a a + b ⋅ a a + c FMI=\sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}} FMI=a+baa+ca
Rand指数(Rand Index):
R I = 2 ( a + d ) m ( m − 1 ) RI = \frac{2(a+d)}{m(m-1)} RI=m(m1)2(a+d)
上述性能度量指标的结果均在[0,1],值越大越好。

对数据集 D = { x 1 , x 2 . . . x m } D=\{x_1,x_2...x_m\} D={x1,x2...xm},假定通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck},定义:
a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x i , x j ) avg(C)=\frac{2}{|C|(|C|-1)}\sum_{1\le i<j\le |C|}dist(x_i,x_j) avg(C)=C(C1)21i<jCdist(xi,xj)
d i a m ( C ) = m a x 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x i , x j ) diam(C)=max_{1\le i<j\le |C|}dist(x_i,x_j) diam(C)=max1i<jCdist(xi,xj)
d m i n ( C i , C j ) = m i n x i ∈ C i , x j ∈ C j d i s t ( x i , x j ) d_{min}(C_i,C_j)=min_{x_i\in C_i,x_j\in C_j}dist(x_i,x_j) dmin(Ci,Cj)=minxiCi,xjCjdist(xi,xj)
d c e n ( C i , C j ) = d i s t ( μ i , μ j ) d_{cen}(C_i,C_j)=dist(\mu_i,\mu_j) dcen(Ci,Cj)=dist(μi,μj)
其中, d i s t ( ⋅ ) dist(\cdot) dist()用于计算两个样本之间的距离; μ \mu μ代表簇 C C C的中心点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i \mu=\frac{1}{|C|}\sum_{1\le i\le |C|}x_i μ=C11iCxi。即 a v g ( C ) avg(C) avg(C)对应簇 C C C内样本间的平均距离, d i a m ( C ) diam(C) diam(C)对应簇 C C C内样本间的最远距离, d m i n ( C i , C j ) d_{min}(C_i,C_j) dmin(Ci,Cj)对应簇 C i C_i Ci C j C_j Cj内样本间的最近距离, d c e n ( C i , C j ) d_{cen}(C_i,C_j) dcen(Ci,Cj)对应簇 C i C_i Ci C j C_j Cj内中心点的距离。

基于上式,可导出以下这些常用的聚类性能度量内部指标:
D B DB DB指数(Davies-Bouldin Index):
D B I = 1 k ∑ i = 1 k m a x i ≠ j ( a v g ( C i ) + a v g ( C j ) d c e n ( μ i , μ j ) ) DBI=\frac{1}{k}\sum_{i=1}^kmax_{i\neq j}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)}) DBI=k1i=1kmaxi=j(dcen(μi,μj)avg(Ci)+avg(Cj))
D u n n Dunn Dunn指数(Dunn Index):
D I = m i n 1 ≤ i ≤ k { m i n i ≠ j ( d m i n ( C i , C j ) m a x 1 ≤ l ≤ k d i a m ( C l ) ) } DI=min_{1\le i\le k}\{min_{i\neq j}(\frac{d_{min}(C_i,C_j)}{max_{1\le l\le k}diam(C_l)})\} DI=min1ik{mini=j(max1lkdiam(Cl)dmin(Ci,Cj))}
D B I DBI DBI的值越小越好, D I DI DI的值越大越好

除此之外还有F值、互信息、平均廓宽等性能度量方法。

4. 参考资料

An introduction to ROC analysis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值