16 模型评估之评估指标
在机器学习中,模型的性能评估是至关重要的一步,能够帮助我们理解模型的表现并进行必要的调整。在本篇中,我们将重点讨论一些常用的评估指标,帮助你在模型评估时做出明智的决策。我们将结合实际案例,使用 Scikit-Learn
的功能来实现评估指标的计算。
1. 分类评估指标
对于分类问题,常用的评估指标包括 准确率
、精确率
、召回率
和 F1-score
。下面我们分别介绍这些指标及其计算方法。
1.1 准确率
准确率
是指预测正确的样本占总样本的比例。其计算公式为:
其中:
- :真正例(True Positives)
- :真负例(True Negatives)
- :假正例(False Positives)
- :假负例(False Negatives)
在 Scikit-Learn
中,可以使用 accuracy_score
函数来计算准确率。
from sklearn.metrics import accuracy_score
# 实际标签和预测标签
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1]
# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
print(f"准确率: {accuracy:.2f}")
1.2 精确率
精确率
是指被预测为正类的样本中,真实为正类的比例。其计算公式为:
我们同样可以使用 precision_score
函数来计算精确率。
from sklearn.metrics import precision_score
# 计算精确率
precision = precision_score(y_true, y_pred)
print(f"精确率: {precision:.2f}")
1.3 召回率
召回率
是指真实为正类的样本中,被正确预测为正类的比例。其计算公式为:
Scikit-Learn
提供了 recall_score
函数来计算召回率。
from sklearn.metrics import recall_score
# 计算召回率
recall = recall_score(y_true, y_pred)
print(f"召回率: {recall:.2f}")
1.4 F1-score
F1-score
是精确率和召回率的调和平均数,考虑到二者的平衡。其计算公式为:
使用 f1_score
函数可以方便地计算 F1-score。
from sklearn.metrics import f1_score
# 计算 F1-score
f1 = f1_score(y_true, y_pred)
print(f"F1-score: {f1:.2f}")
2. 回归评估指标
对于回归问题,常用的评估指标包括 均方误差
、均方根误差
和 R²得分
。
2.1 均方误差(MSE)
均方误差
是预测值与实际值之间误差的平方的平均值。其计算公式为:
在 Scikit-Learn
中可以使用 mean_squared_error
。
from sklearn.metrics import mean_squared_error
# 实际值与预测值
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
# 计算均方误差
mse = mean_squared_error(y_true, y_pred)
print(f"均方误差: {mse:.2f}")
2.2 均方根误差(RMSE)
均方根误差
是均方误差的平方根,用来更直观地表示误差的级别。公式为:
import numpy as np
# 计算均方根误差
rmse = np.sqrt(mse)
print(f"均方根误差: {rmse:.2f}")
2.3 R²得分
R²得分
表示模型对数据变异性的解释能力。其定义为:
可以使用 r2_score
来计算 R²得分。
from sklearn.metrics import r2_score
# 计算 R²得分
r2 = r2_score(y_true, y_pred)
print(f"R²得分: {r2:.2f}")
结语
通过上述介绍,我们学习了多种评估指标,以及如何使用 Scikit-Learn
来实现它们的计算。在下一篇中,我们将深入探讨模型评估中的一个重要技术——交叉验证(Cross-Validation)。利用交叉验证,我们能够进一步评估模型的稳健性,避免过拟合(Overfitting)的风险。因此,继续关注这个系列教程,掌握模型评估的全貌!