机器学习中常用评价指标(分类篇)
Posted 夏小悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中常用评价指标(分类篇)相关的知识,希望对你有一定的参考价值。
前言
T P TP TP,即 T r u e P o s i t i v e True\\ Positive True Positive,表示实际是正类,同时也被判定为正类;
F P FP FP,即 F a l s e P o s i t i v e False\\ Positive False Positive,表示实际是负类,但被判定为正类;第一类错误 ( T y p e I E r r o r ) (Type \\ I\\ Error) (Type I Error)
T N TN TN,即 T r u e N e g a t i v e True\\ Negative True Negative,表示实际是正类,但被判定为负类;第二类错误 ( T y p e I I E r r o r ) (Type \\ II\\ Error) (Type II Error)
F N FN FN,即 F a l s e N e g a t i v e False\\ Negative False Negative,表示实际是负类,同时也被判定为负类。
1. 准确率
准确率(accuracy)
是分类问题中最常用的度量。使用准确率时,我们要求算法返回明确的类别。准确率的定义如下:
a
c
c
u
r
a
c
y
=
正
确
分
类
的
样
本
数
总
样
本
数
accuracy=\\frac {正确分类的样本数} {总样本数}
accuracy=总样本数正确分类的样本数 有上述定义可知,准确率的取值区间为
[
0
,
1
]
[0,1]
[0,1],取值越大,分类效果越好。
在实际应用中,只用准确率一项来衡量分类结果会有失偏颇。比如,如果在分类问题中有一类样本占大多数,而分类的重点在样本数较少的那一类,那么简单计算准确率并不能较好地反映算法的性能。举个栗子:
假设我们有一个包含100个样本的数据集,其中97个是正常交易,3个是欺诈交易。如果算法 A A A 将所有样本都判定为正常交易,而算法 B B B 将8个样本判定为欺诈交易(包括3个真正的欺诈交易),根据准确率的计算公式,算法 A A A 的准确率为0.97,算法 B B B 的准确率为0.95。虽然算法 A A A 的准确率更高,但是它本质上没有给我们提供关于欺诈的任何有效信息,算法 B B B 的准确率虽然较低些,它是我们认为算法 B B B 在这个人物场景中更适用。
2. 混淆矩阵
混淆矩阵(confusion matrix)
,又称为错误矩阵或者可能性表格。混淆矩阵全面考虑了各种错分的情况,并将分类的结果以类别a被判定为类别b的样本数为多少
的形式展示。其中,每一行代表一个实际的类别,每一列代表一个预测的类别。
根据上面的那个栗子,我们可以知道错位的分类有两种:正常的交易被判定为欺诈、欺诈的交易被判定为正常。由此可以得出算法
A
A
A 和算法
B
B
B 的混淆矩阵:
基于混淆矩阵,可以定义
T
P
R
(
T
r
u
e
P
o
s
i
t
i
v
e
R
a
t
e
)
TPR(True\\ Positive\\ Rate)
TPR(True Positive Rate),又称为灵敏度(sensitivity)
,表示正类样本中被正确分类的比例:
s
e
n
s
i
t
i
v
i
t
y
=
T
P
R
=
T
P
T
P
+
F
N
sensitivity=TPR=\\frac {TP} {TP+FN}
sensitivity=TPR=TP+FNTP 同样可以定义
T
N
R
(
T
r
u
e
P
o
s
i
t
i
v
e
R
a
t
e
)
TNR(True\\ Positive\\ Rate)
TNR(True Positive Rate),又称为特异度(specificity)
,表示负类样本中被正确分类的比例:
s
p
e
c
i
f
i
c
i
t
y
=
T
N
R
=
T
N
T
N
+
F
P
specificity=TNR=\\frac {TN} {TN+FP}
specificity=TNR=TN+FPTN 可以定义
F
P
R
(
F
a
l
s
e
P
o
s
i
t
i
v
e
R
a
t
e
)
FPR(False\\ Positive\\ Rate)
FPR(False Positive Rate),表示负类样本中被错误分类的比例:
F
P
R
=
F
P
F
P
+
T
N
FPR=\\frac {FP} {FP+TN}
FPR=FP+TNFP 同样可以定义
T
N
R
(
T
r
u
e
P
o
s
i
t
i
v
e
R
a
t
e
)
TNR(True\\ Positive\\ Rate)
TNR(True Positive Rate),又称为特异度(specificity)
,表示负类样本中被正确分类的比例:
s
p
e
c
i
f
i
c
i
t
y
=
T
N
R
=
T
N
T
N
+
F
P
specificity=TNR=\\frac {TN} {TN+FP}
specificity=TNR=TN+FPTN 根据混淆矩阵,可以计算出准确率为:
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
3. 精确率
精确度(precision)
表示的是在算法判定为正类的所有样本中,真正的正类样本所占的比例,计算公式如下:
p
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
precision=\\frac {TP} {TP+FP}
precision=TP+FPTP 精确度越高,说明在判定为正类的样本中负类样本越少。
4. 召回率
召回率(recall)
表示的是所有的正类样本被正确分类的比例,计算公式如下:
r
e
c
a
l
l
=
T
P
T
P
+
F
N
recall=\\frac {TP} {TP+FN}
recall=TP+FNTP 召回率越高,说明正类样本被错误分类的比例越小。
5. F1度量
F1度量(F1-Measure)
同时考虑了精确率和召回率,是精确率和召回率的调和平均数,计算公式如下:
F
1
=
2
1
p
r
e
c
i
s
i
o
n
+
1
r
e
c
a
l
l
=
2
×
p
r
e
c
i
s
i
o
n
×
r
e
c
a
l
l
p
r
e
c
i
s
i
o
n
+
r
e
c
a
l
l
=
2
T
P
2
T
P
+
F
P
+
F
N
F1=\\frac {2} {\\frac {1} {precision} + \\frac {1} {recall}} \\\\[5pt] =\\frac {2\\times precision \\times recall} {precision + recall} \\\\[5pt] =\\frac {2TP} {2TP+FP+FN}
F1=precision1+recall12=precision+recall2×precision×recall=以上是关于机器学习中常用评价指标(分类篇)的主要内容,如果未能解决你的问题,请参考以下文章