机器学习中的评估指标
分类指标
首先明确
TP(True Positive): 真实为0,预测也为0
FN(False Negative): 真实为0,预测为1
FP(False Positive): 真实为1,预测为0
TN(True Negative): 真实为1,预测也为1
1,精确率和召回率(P-R曲线,AP分数,F1值)
定义如下:
精
确
率
(
p
r
e
c
i
s
i
o
n
)
=
T
P
T
P
+
F
P
精确率(precision)= \frac{TP}{TP+FP}
精确率(precision)=TP+FPTP
召
回
率
(
r
e
c
a
l
l
)
=
T
P
T
P
+
F
N
召回率(recall)=\frac{TP}{TP+FN}
召回率(recall)=TP+FNTP
P-R曲线是以召回率为横轴,精确率为纵轴所画曲线。
AP分数:由于曲线越靠近右上边性能越好,描述曲线下方面积叫AP分数(Average Precision Score),AP分数越高,表示性能越好。
F
1
F_1
F1值:F1值是精确率与召回率的调和平均值,相较与算术平均值,调和平均值更受小数影响。
2
F
1
=
1
P
+
1
R
\frac{2}{F_1}=\frac{1}{P}+\frac{1}{R}
F12=P1+R1
F
α
F_\alpha
Fα值:加权调和平均值。
F
α
=
(
1
+
α
2
)
×
P
×
R
α
2
×
P
+
R
F_\alpha=\frac{(1+\alpha^2)\times P \times R}{\alpha^2 \times P + R}
Fα=α2×P+R(1+α2)×P×R
2,准确率和错误率
准
确
率
(
a
c
c
u
r
a
c
y
)
=
T
P
+
T
N
T
P
+
F
P
+
T
N
+
F
N
准确率(accuracy)= \frac{TP+TN}{TP+FP+TN+FN}
准确率(accuracy)=TP+FP+TN+FNTP+TN
错
误
率
(
e
r
r
o
r
r
a
t
e
)
=
F
P
+
F
N
T
P
+
F
P
+
T
N
+
F
N
错误率(error rate)=\frac{FP+FN}{TP+FP+TN+FN}
错误率(errorrate)=TP+FP+TN+FNFP+FN
这里可以看到精确率和准确率是不一样的两个概念
3,真正率和假正率(ROC与AUC)
真
正
率
(
T
P
R
)
=
T
P
T
P
+
F
N
真正率(TPR)= \frac{TP}{TP+FN}
真正率(TPR)=TP+FNTP
假
正
率
(
F
P
R
)
=
F
P
F
P
+
T
N
假正率(FPR)= \frac{FP}{FP+TN}
假正率(FPR)=FP+TNFP
ROC与AUC:
意义:对于使用精确率,召回率等指标进行模型进行模型评估时,需要设置一个阈值,大于阈值的视为正例,否则为负例,这使得模型多了一个超参数,并且这个超参数会影响模型的泛化能力。
ROC(Receiver Operating Characteristic)绘制方法:以假正率为横轴,真正率为纵轴的曲线,首先对所有样本按预测结果排序,然后以每条结果的预测概率为阈值,计算对应TPR和FPR,然后用线段连接,可以看出ROC曲线越接近左上角性能越好。
AUC(Area Under Roc Curve)即ROC曲线下的面积,取值越大说明模型越可能将正样本排在负样本前面。AUC还有一些统计特性:AUC等于随机挑选一个正样本(P)和负样本(N)时,分类器将正样本排前面的概率;AUC和Wilcoxon Test of Ranks等价;AUC还和基尼(Gini)系数有联系,满足等式Gini + 1 = 2 • AUC。
AUC的计算方法有多种,从物理意义角度理解,AUC计算的是ROC曲线下的面积:
A
U
C
=
∑
i
∈
(
P
+
N
)
(
T
P
R
i
+
T
P
R
i
−
1
)
.
(
F
P
R
i
+
F
P
R
i
−
1
)
2
AUC=\sum_{i\in (P+N)} \frac{(TPR_i+TPR_{i-1}).(FPR_i+FPR_{i-1})}{2}
AUC=i∈(P+N)∑2(TPRi+TPRi−1).(FPRi+FPRi−1)
从概率意义角度理解,AUC考虑的是样本的排序质量,它与排序误差有密切关系,可得到计算公式:
A
U
C
=
∑
i
n
s
i
∈
p
o
s
i
t
i
v
e
c
l
a
s
s
r
a
n
k
i
n
s
i
−
M
×
(
M
+
1
)
2
M
×
N
AUC= \frac{\sum _{ins_i\in positiveclass}rank_{ins_i}-\frac{M \times (M +1)}{2}}{M \times N}
AUC=M×N∑insi∈positiveclassrankinsi−2M×(M+1)
r
a
n
k
i
n
s
i
rank_{ins_i}
rankinsi,代表第i条样本的序号。(概率得分从小到大排,排在第rank个位置)
M,N分别是正样本的个数和负样本的个数
∑
i
n
s
i
∈
p
o
s
i
t
i
v
e
c
l
a
s
s
\sum _{ins_i\in positiveclass}
∑insi∈positiveclass只把正样本的序号加起来。
理解:如果所有的正样本概率值都是大于负样本的,那个每个正样本的rank值减去比自己概率小的正样本数量和自己本身为1,得到的值应该为所以负样本的数量,即N,将每个正样本如此计算累加得到的值为 M × N M\times N M×N。对于所有的正样本,比自己概率小的正样本数量+1为1,2,3,····,M-2,M,全部加起来为 M × ( M + 1 ) 2 \frac{M \times (M +1)}{2} 2M×(M+1),那么 ∑ i n s i ∈ p o s i t i v e c l a s s r a n k i n s i − M × ( M + 1 ) 2 \sum _{ins_i\in positiveclass}rank_{ins_i}-\frac{M \times (M +1)}{2} ∑insi∈positiveclassrankinsi−2M×(M+1)代表所有正样本概率大于负样本的数量的累积,其值 < = M × N <=M\times N <=M×N,则 A U C = ∑ i n s i ∈ p o s i t i v e c l a s s r a n k i n s i − M × ( M + 1 ) 2 M × N < = 1 AUC= \frac{\sum _{ins_i\in positiveclass}rank_{ins_i}-\frac{M \times (M +1)}{2}}{M \times N}<=1 AUC=M×N∑insi∈positiveclassrankinsi−2M×(M+1)<=1,值越大正样本排在负样本前面的概率越高。
4,对数损失
对数损失(Logistic Loss,logloss)是对预测概率的似然估计,其标准形式为:
l
o
g
l
o
s
s
=
−
l
o
g
P
(
Y
│
X
)
logloss=-logP(Y│X)
logloss=−logP(Y│X)
对于二分类问题:
l
o
g
l
o
s
s
=
−
1
N
∑
i
=
1
N
(
y
.
l
o
g
p
i
+
(
1
−
y
)
.
l
o
g
p
i
)
)
logloss=-\frac{1}{N}\sum_{i=1}^{N}(y.logp_i+(1-y).logp_i))
logloss=−N1i=1∑N(y.logpi+(1−y).logpi))
多分类问题:
l
o
g
l
o
s
s
=
−
1
N
.
1
C
.
∑
i
=
1
N
∑
i
=
1
C
y
i
j
.
l
o
g
p
i
j
logloss=-\frac{1}{N}.\frac{1}{C}.\sum_{i=1}^{N}\sum_{i=1}^{C}y_{ij}.logp_{ij}
logloss=−N1.C1.i=1∑Ni=1∑Cyij.logpij
其中,N为样本数,C为类别数,yij=1表示第i条样本的类别为j,pij为第i条样本类别j的概率。
logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。与AUC不同,logloss对预测概率敏感。
参考文献
[1] 美团算法团队 . 美团机器学习实践[M]. 北京:人民邮电出版社, 2018.8