趋近智
衡量模型在测试集(模型之前未见过的数据)上的表现是评估的必要步骤。这一过程涉及将模型的预测结果(y_pred)与测试集中真实已知的值(y_true)进行直接比较。常用的评估指标提供了进行这种比较的数学工具。
可以把这想象成批改考试。学生(您的模型)对从未见过的题目(测试集)提供了答案(预测结果)。您手上有标准答案(真实值)。计算性能指标的过程,就是应用评分标准(选择的指标,如准确率或平均绝对误差)来量化有多少答案是正确的,或者答案的接近程度。
如果您处理的是分类问题(比如预测垃圾邮件与非垃圾邮件,或识别不同类型的物体),您会使用为分类结果设计的指标。我们来回顾一下常见的指标:
混淆矩阵组成部分(TP, FP, TN, FN): 通常第一步是对测试集上的每个预测进行分类:
y_pred 中的每个预测与其在 y_true 中的对应值来获得这些计数。准确率: 这是最直接的指标。它是正确预测占总预测的比例。
准确率=总预测数正确预测数=TP+FP+TN+FNTP+TN您可以通过将TP和TN的计数相加,然后除以测试集中的总预测数来计算此值。
精确率: 衡量阳性预测的准确性。在模型预测为阳性的所有情况下,实际为阳性的有多少?
精确率=TP+FPTP使用比较 y_pred 和 y_true 得出的TP和FP计数。
召回率(敏感度): 衡量模型正确识别出实际阳性案例的数量。
召回率=TP+FNTP使用TP和FN计数。
F1-分数: 精确率和召回率的调和平均值,提供一个平衡两者的单一分数。
F1=2×精确率+召回率精确率×召回率首先计算精确率和召回率,然后将它们代入此公式。
计算示例:
假设您的测试集有10个实例。运行模型后,您将预测结果(y_pred)与实际值(y_true)进行比较:
| 实例 | 实际值 (y_true) |
预测值 (y_pred) |
结果 |
|---|---|---|---|
| 1 | 正 | 正 | TP |
| 2 | 正 | 负 | FN |
| 3 | 负 | 负 | TN |
| 4 | 正 | 正 | TP |
| 5 | 负 | 正 | FP |
| 6 | 负 | 负 | TN |
| 7 | 正 | 正 | TP |
| 8 | 负 | 负 | TN |
| 9 | 正 | 负 | FN |
| 10 | 负 | 负 | TN |
通过此比较:
现在您可以计算这些指标了:
对于回归问题,模型预测的是连续数值(如房价或温度),您会使用衡量预测值(y_pred)与实际值(y_true)之间误差大小的指标。
计算误差: 大多数回归指标的基础是每个预测的误差或残差:ei=y真实,i−y预测,i。您需要为测试集中的每个数据点计算此差值。
平均绝对误差 (MAE): 绝对误差的平均值。它告诉您,平均而言,您的预测与目标变量的原始单位有多少偏差。
平均绝对误差=n1i=1∑n∣y真实,i−y预测,i∣计算每个点的绝对误差 ∣ei∣,将它们加起来,然后除以测试点的数量 (n)。
均方误差 (MSE): 平方误差的平均值。误差平方化会使较大的错误受到比小错误更重的惩罚。
均方误差=n1i=1∑n(y真实,i−y预测,i)2计算每个点的平方误差 ei2,将它们加起来,然后除以 n。请注意,单位是平方后的(例如,如果预测价格,单位是平方美元)。
均方根误差 (RMSE): 均方误差的平方根。取平方根可以将指标带回目标变量的原始单位,使其比均方误差更容易理解,同时仍能惩罚大错误。
均方根误差=均方误差=n1i=1∑n(y真实,i−y预测,i)2先计算均方误差,然后取其平方根。
决定系数(R方, R2): 表示因变量(实际值)的方差中,可以通过自变量(模型使用的特征)预测的部分所占的比例。它的范围从负无穷到1。值为1表示模型完美预测数据。值为0表示模型表现不比简单预测实际值的平均值更好。它通常使用均方误差计算:
R2=1−∑i=1n(y真实,i−yˉ真实)2∑i=1n(y真实,i−y预测,i)2=1−y真实 的方差均方误差其中 yˉ真实 是测试集中真实值的平均值。
计算示例:
假设您的测试集有5个房价预测:
| 实例 | 实际价格 (y_true) | 预测价格 (y_pred) | 误差 (ei) | 绝对误差 (∣ei∣) | 平方误差 (ei2) |
| :------- | :---------------------- | :------------------------- | :------------ | :------------------------ | :---------------------- |
| 1 | 250k∣260k | -10k∣10k | 100M |
| 2 | 300k∣295k | 5k∣5k | 25M |
| 3 | 210k∣225k | -15k∣15k | 225M |
| 4 | 450k∣440k | 10k∣10k | 100M |
| 5 | 320k∣310k | 10k∣10k | 100M |
| 总和 | | | | $50k | 550M |
现在计算指标(n=5):
计算R方需要实际价格的方差,但其过程涉及将平方误差的总和(550M)与实际价格的总方差进行比较。
虽然理解公式很重要,但对于大型数据集,您通常不会手动计算这些指标。像Python中的scikit-learn这样的编程库提供了高效计算这些指标的函数。您只需提供测试集的真实值(y_true)和模型的预测值(y_pred),库就会处理计算。例如,您可以使用 accuracy_score(y_true, y_pred)、precision_score(y_true, y_pred)、mean_squared_error(y_true, y_pred) 或 r2_score(y_true, y_pred) 等函数。
这一步为您提供了具体的数值,总结了模型在未见过数据上的表现。下一个重要步骤是根据您具体的问题,理解这些数字的含义。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造