为了评估机器学习模型的精确度,引入P值和R值的概念。
定义
P
=
#
t
r
u
e
p
o
s
i
t
i
v
e
s
#
p
r
e
d
i
c
t
e
d
a
s
p
o
s
i
t
i
v
e
s
P = \frac{\# true \quad positives}{\# predicted \quad as \quad positives }
P=#predictedaspositives#truepositives即精确度。含义为模型预测为正例且预测正确的样本占模型预测为正例的所有样本的比例。
定义
R
=
#
t
r
u
e
p
o
s
i
t
i
v
e
s
#
a
c
t
u
a
l
p
o
s
i
t
i
v
e
s
R = \frac{\# true \quad positives}{\# actual \quad positives}
R=#actualpositives#truepositives即召回率。含义为模型预测为正且预测正确的样本占所有实际样本中为真的样本的比例。
- 精确度针对于模型的预测结果。它不考虑样本整体,所考虑的范围仅仅在于模型预测为正例的样本中。
- 召回率考虑的范围是所有为正例的样本。
如果只考虑精确度,忽视召回率,考虑下面的情形:样本集合中有许多的正例的样本,但模型预测且仅预测其中一个样本为正例(按我的感觉来说模型是保守的)。
- 按照P的定义,分子为1,分母也为1.这时P = 100%.
- 但这显然不能说明我们的模型很好,因为它并没有预测到其余的为正例的样本。这时,他的R值按定义来说是很低的。
如果只考虑召回率,忽视精确度,考虑下面的情形:模型不管三七二十一将所有的样本都预测为真(显然没有任何意义)。直观来说这种模型是放肆的
- 这时按照R的定义,显然此时R = 1,因为模型预测除了样本集合中所有真实的样本。
- 但此时精确度P是很低的,因为
- 此时分母为样本的个数。
- 此时分子为样本中确实是正例的样本的个数。
为了使模型即不太放肆,又不太保守,考虑使用两个指标的调和平均值来衡量模型,即下面的式子:
F
=
1
1
P
+
1
R
F = \frac{1}{\frac{1}{P} + \frac{1}{R}}
F=P1+R11