现实情况中不同类型的错误所造成的结果不同,影响也不尽相同,例如将健康的患者诊断为病人和将病人诊断为健康的人,虽然看起来都是犯了一次错误但是影响是不相同的:前者只是增加了再一次诊断的麻烦,而后者则会导致病人错过最佳的治疗时机。因此为了权衡不同类型错误所造成的不同的损失,可为错误赋予“非均等代价(unequal cost)”。
以二分类为例:可设定一个代价矩阵(cost matrix)
真实类别 | 预测 第0类 | 结果 第1类 |
第0类 | 0 | Cost01 |
第1类 | Cost10 | 0 |
其中用costij表示将第i类预测为第j类的代价,决定了错误的影响程度。在非均等代价下,我们所希望的不再是简单地最小化错误的次数,而是希望最小化总体代价(total cost)
代价敏感(cost-sensitive)的错误率计算公式(以上面二分类为例0为正例,1为负例)为:
D:数据集 D+ :正样本数据集 D-:负样本数据集
||(·) : 指示函数
其中costij i j 不只限于二分类,可以定义出多任务分类的代价敏感性能度量。
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可达到该目的。
代价曲线图的横轴是取值为[0, 1]的正例概率代价
P:样例为正例的概率
纵轴为取值[0, 1]的归一化代价
FNR:假反例率,FNR=1-TPR
代价曲线的绘制:
ROC曲线上的每一点对应了代价平面上的一段线段(每一点即为不同的阈值下的分类器的表现, 表现用真正率、假正率衡量),ROC曲线上每一点的坐标为(FPR,TPR)在计算出相应的FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,学习器的总体期望代价是其所有的线段围成的面积。(FNR=1-TPR, 假反率的计算 = 1 - 真正率),又因为横坐标为正例概率代价,再代价一定的情况下,其变量为p,(由归一化代价的公式可以得出:当p为0时,即其值为FPR),即整条线段就是不同p下的代价。
由图可以看出:x = 正概率代价 y=归一化代价
y = (FNR-FPR)*X+FPR
参数为为正概率代价,也即正例概率P