13 机器学习模型评估之评估指标介绍

在上一节中,我们讨论了模型选择与训练之超参数调优。超参数调优是提升模型性能的关键步骤,而模型评估则是确认模型有效性的必要过程。今天,我们将深入探讨机器学习模型评估中的评估指标,这些指标可以帮助我们量化模型的性能,为我们的模型选择和后续的改进提供可靠依据。

评估指标的作用

评估指标是用于衡量模型预测性能的标准。通过评估指标,我们可以:

  • 比较不同模型的表现
  • 确定模型是否满足业务需求
  • 识别模型在不同数据集或特征上的表现差异

在分类和回归任务中,常用的评估指标有所不同,接下来让我们分别讨论这些指标。

分类模型评估指标

在分类任务中,我们通常用如下几个指标来评估模型性能:

1. 准确率 (Accuracy)

准确率是最常见的分类评估指标,它表示模型正确预测的样本占总样本的比例。公式为:

$$
\text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}
$$

其中,TP(True Positive)是真阳性,TN(True Negative)是真阴性,FP(False Positive)是假阳性,FN(False Negative)是假阴性。

案例:假设我们有一个二分类模型,预测某个邮件是否为垃圾邮件,实际有100封邮件,其中有30封是垃圾邮件。模型正确识别出25封垃圾邮件和60封正常邮件。我们可以计算模型的准确率:

1
2
3
4
5
6
TP = 25
TN = 60
FP = 5 # 误分类正常邮件为垃圾邮件
FN = 5 # 误分类垃圾邮件为正常邮件
accuracy = (TP + TN) / (TP + TN + FP + FN)
print("准确率:", accuracy)

2. 精确率 (Precision) 和 召回率 (Recall)

  • 精确率衡量的是模型在所有预测为正例的样本中,实际为正例的比例:

$$
\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}
$$

  • 召回率衡量的是在所有实际为正例的样本中,模型正确预测为正例的比例:

$$
\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}
$$

案例:继续使用上述邮件分类的例子,我们可以计算精确率和召回率:

1
2
3
precision = TP / (TP + FP)
recall = TP / (TP + FN)
print("精确率:", precision, "召回率:", recall)

3. F1-score

F1-score是精确率和召回率的调和平均值,适用于当我们希望在精确率和召回率之间找到平衡时:

$$
F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
$$

在分类问题,尤其是不平衡的分类问题中,F1-score是一个非常重要的评估指标。

代码示例

1
2
F1 = 2 * (precision * recall) / (precision + recall)
print("F1-score:", F1)

回归模型评估指标

在回归任务中,我们采用不同的指标来评估模型性能,常用的有:

1. 均方误差 (Mean Squared Error, MSE)

MSE是预测值与真实值之差的平方的平均值,公式为:

$$
\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2
$$

其中,$y_i$是真实值,$\hat{y}_i$是预测值,$n$是样本数量。

2. 均方根误差 (Root Mean Squared Error, RMSE)

RMSE是均方误差的平方根,具有与原始数据相同的单位,使其更易于解释:

$$
\text{RMSE} = \sqrt{\text{MSE}}
$$

3. 平均绝对误差 (Mean Absolute Error, MAE)

MAE是预测值与真实值之差的绝对值的平均值,公式为:

$$
\text{MAE} = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|
$$

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.metrics import mean_squared_error, mean_absolute_error
import numpy as np

y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])

mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
mae = mean_absolute_error(y_true, y_pred)

print("均方误差 (MSE):", mse)
print("均方根误差 (RMSE):", rmse)
print("平均绝对误差 (MAE):", mae)

总结

在模型评估中,选择合适的评估指标至关重要。对于分类问题,准确率、精确率、召回率和F1-score是常用的指标,而回归问题则常用MSE、RMSE和MAE。这些指标不仅帮助我们了解模型的性能,还为我们在模型调优和选择时提供了重要的参考依据。

接下来,我们将讨论模型评估之交叉验证。在实际应用中,合理地使用交叉验证可以帮助我们更准确地评估模型性能,减少因过拟合或数据划分不当导致的偏差。

13 机器学习模型评估之评估指标介绍

https://zglg.work/machine-learning-zero/13/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论