机器学习模型训练与误差分析

机器学习领域,模型训练的核心目标是提升模型的泛化能力、可靠性、鲁棒性,并尽量减少偏差。所有模型算法都依赖于尽可能接近真实情况的预测,因此误差分析和相应的行动在实现这一目标中扮演着关键角色。

机器学习模型主要基于单一或聚合指标(如准确率、精确度、召回率)进行测试和开发,这些指标覆盖了模型在整个数据集上的表现。虽然这有助于调整整体模型性能,但并不能深入到错误细节中,以帮助更好地解决训练/测试集错误。深入审查错误案例可以帮助系统地提出改进模型性能的想法和建议,尽可能接近真实情况。此外,误差分析还有助于创建负责任的机器学习模型,通过识别模型是否在某些受保护的变量/类别上表现得更错误。

误差分析机器学习中的定义

误差分析是隔离、观察和诊断机器学习错误预测的过程,帮助理解模型在不同数据子组中的高低性能。当提到“模型准确率为90%”时,这可能并不是在所有数据子组中均匀分布的,可能存在一些输入条件,模型在这些条件下更容易失败。因此,它是从聚合指标到更深入审查模型错误的下一步。

例如,一个狗检测图像识别模型可能在户外环境中表现更好,但在低光照的室内环境中表现不佳。这可能是由于数据集的偏差,误差分析有助于识别这些情况是否影响模型性能。下图提供了从聚合到按组划分错误,以获得更好的模型性能视图。

误差识别与诊断

这有助于了解错误是如何在关键假设或关键特征/类别/队列的数据集中分布的。例如,在银行使用的贷款批准模型中,可能发现模型在年轻且月平均余额较低的个体上出现更多错误。

如何手动进行(尤其是在数据是图像、语音或文本,没有明显特征的情况下):

# 示例代码:创建混淆矩阵 from sklearn.metrics import confusion_matrix y_true = [0, 1, 2, 2, 0] y_pred = [0, 1, 1, 0, 0] cm = confusion_matrix(y_true, y_pred) print(cm)

通过混淆矩阵,可以看到模型在不同类别上的表现,但并不能帮助理解哪些被错误分类,因此需要隔离错误分类的图像,并创建一些关于这些错误的假设/观察。

在快速审查所有示例后,发现以下情况在所有错误案例中都很常见:

  • 白色猫没有被正确识别
  • 像猫的狗被识别为猫
  • 深色背景导致分类错误等

对于所有错误用例的假设或共性观察,随后创建一个Excel表格或类似工具,以映射错误的确切分布。对于猫分类示例,它看起来像下面这样(请注意,每个数据点/图像可能具有以下多个标签):

自动进行误差分析的方法

如果数据具有更明显的特征,如信用评级模型、产品推荐模型或客户流失模型,可以使用erroranalysis.ai包快速识别并进一步诊断错误分布。可以创建热图和树图来显示导致错误的原因,以及有关错误细节的更多信息。

在识别和分析上述错误后,需要进入解决错误的下一步!让以语音识别为例,用上述表格填充额外的列,这些列是这些情况下错误发生的总体百分比,然后是错误影响的数据集的总体百分比。选择从影响最多案例的假设开始工作是有意义的(在Andrew Ng的视频中有进一步解释)。

在选择了领域后,可以尝试以下方法,基于可行性、所需工作量、在该领域改进的重要性以及在该领域可以实现的最大准确性:

  • 收集错误发生情况下的更多数据点
  • 数据增强或提高数据质量的步骤
  • 使用其他机器学习模型/不同地调整超参数
  • 可减少误差:这些误差是由模型本身的不足引起的,例如特征表示不足、错误的假设或次优算法。通过模型改进、微调、更好的特征工程和完善学习过程,可以最小化可减少误差。
  • 不可减少误差:这些误差源于模型和数据科学家无法控制的因素,例如数据的固有变异性或被建模的底层现象的不可预测性。它们代表了模型性能的极限,即使具有完美的特征表示和算法选择,也无法完全消除。由于现实世界数据的复杂性和噪声,不可减少误差难以消除。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485