监督学习中的常见评估指标
介绍
在机器学习中,评估指标用于衡量模型的性能和准确度。在监督学习中,我们需要评估模型预测结果与真实标签之间的差异。本文将介绍监督学习中常见的评估指标,包括算法原理、公式推导、计算步骤和Python代码示例。
准确率(Accuracy)
准确率是评估分类模型性能的最简单指标之一,它衡量了分类器正确预测的样本占总样本的比例。
公式如下:
a
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
accuracy = \frac{TP + TN}{TP + TN + FP + FN}
accuracy=TP+TN+FP+FNTP+TN
其中,TP表示真正例(True Positive),即模型正确预测为阳性的阳性样本数;TN表示真负例(True Negative),即模型正确预测为阴性的阴性样本数;FP表示假正例(False Positive),即模型错误预测为阳性的阴性样本数;FN表示假负例(False Negative),即模型错误预测为阴性的阳性样本数。
计算步骤如下:
- 统计TP、TN、FP和FN的数量;
- 根据公式计算准确率。
代码示例:
def accuracy_score(y_true, y_pred):
TP = sum((y_true == 1) & (y_pred == 1))
TN = sum((y_true == 0) & (y_pred == 0))
FP = sum((y_true == 0) & (y_pred == 1))
FN = sum((y_true == 1) & (y_pred == 0))
accuracy = (TP + TN) / (TP + TN + FP + FN)
return accuracy
代码解释:
- 首先通过逻辑运算符
&
计算出y_true
和y_pred
中相应位置为1(阳性)的数量; - 然后通过
sum()
函数求和,得到TP、TN、FP和FN的数量; - 最后根据准确率公式计算准确率。
精确率(Precision)
精确率衡量了分类器预测为阳性的样本中真正的阳性样本所占的比例。精确率高表示分类器在预测为阳性时较少出现错误。
公式如下:
p
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
precision = \frac{TP}{TP + FP}
precision=TP+FPTP
计算步骤如下:
- 统计TP和FP的数量;
- 根据公式计算精确率。
代码示例:
def precision_score(y_true, y_pred):
TP = sum((y_true == 1) & (y_pred == 1))
FP = sum((y_true == 0) & (y_pred == 1))
precision = TP / (TP + FP)
return precision
代码解释:
- 通过逻辑运算符
&
计算出y_true
和y_pred
中相应位置为1的数量; - 根据公式计算精确率。
召回率(Recall)
召回率衡量了模型成功预测出阳性样本的能力。召回率高表示模型能较好地找出真正的阳性样本。
公式如下:
r
e
c
a
l
l
=
T
P
T
P
+
F
N
recall = \frac{TP}{TP + FN}
recall=TP+FNTP
计算步骤如下:
- 统计TP和FN的数量;
- 根据公式计算召回率。
代码示例:
def recall_score(y_true, y_pred):
TP = sum((y_true == 1) & (y_pred == 1))
FN = sum((y_true == 1) & (y_pred == 0))
recall = TP / (TP + FN)
return recall
代码解释:
- 通过逻辑运算符
&
计算出y_true
和y_pred
中相应位置为1的数量; - 根据公式计算召回率。
F1值(F1-Score)
F1值综合了精确率和召回率,是一个综合评价指标,可用于评估分类模型的综合性能。
公式如下:
F
1
=
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
F1 = \frac{2 \cdot precision \cdot recall}{precision + recall}
F1=precision+recall2⋅precision⋅recall
计算步骤如下:
- 分别计算精确率和召回率;
- 根据公式计算F1值。
代码示例:
def f1_score(y_true, y_pred):
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = (2 * precision * recall) / (precision + recall)
return f1
代码解释:
- 调用精确率和召回率的计算函数,分别计算精确率和召回率;
- 根据公式计算F1值。
总结
以上介绍了监督学习中常见的评估指标,包括准确率、精确率、召回率和F1值。通过计算这些指标,可以评估分类模型的性能和准确度。在实际应用中,根据具体情况选择适当的指标进行评估,并结合其他因素综合考虑。通过对模型的评估,我们可以不断优化算法并提升模型的性能。