0

我想开发一个验证机器学习模型的框架(用于 QA 测试)。我与同行进行了很多讨论,并阅读了谷歌的文章。

大多数讨论或文章都在告诉机器学习模型将随着我们提供的测试数据而发展。如我错了请纠正我。

开发一个验证机器学习模型的框架将给出准确结果的可能性有多大?

从我阅读的文章中测试模型的几种方法:拆分和多拆分技术,变形测试

还请建议任何其他方法

4

2 回答 2

2

基于 ML 的软件的 QA 测试需要额外的、非常规的测试,因为通常它们对给定输入集的输出没有定义、确定性或先验已知,并且它们产生近似值而不是精确结果。

QA 可设计用于测试:

  1. 朴素但可预测的基准方法:预测中的平均方法,分类中的基于类频率的分类器等。
  2. 健全性检查(输出可行/合理):例如,预测的年龄是否为正?
  3. 预设的客观接受水平:例如,它的AUCROC > 0.5?
  4. 极端/边界情况:例如,天气预报模型的雷暴条件。
  5. 偏差-方差权衡:它在样本内和样本外数据上的表现如何?K-Fold交叉验证在这里很有用。
  6. 模型本身:其性能度量(例如,AUCROC)的变异系数是否在合理范围内针对相同/随机训练和测试分区的相同数据运行?

其中一些测试需要性能测量。是它们的综合库。

于 2018-08-14T21:41:18.723 回答
0

我认为数据流实际上是需要在这里测试的,例如原始输入、操作、测试输出和预测。例如,如果您有一个简单的线性模型,您实际上想要测试从该模型生成的预测而不是模型系数。因此,也许,高级步骤总结如下;

  1. 原始输入:原始输入有意义吗?在开始操作之前,您需要确保原始数据值在预期范围内。例如,如果您通常在某些数据中看到 5-10% 的 NA 率,那么在新批次中具有 95% 的 NA 率可能表明存在问题。
  2. 训练/预测就绪输入:无论您是训练一个新模型还是将新数据输入到已经训练好的模型中进行预测,您可能都希望确保操纵的数据也有意义。一些 ML 算法对数据异常很敏感。您不想仅仅因为输入中有一些数据异常就预测大约数千个信用评分。
  3. 模型成功:此时,您应该对模型的成功有一些了解。因此,您可以在新的测试数据上测量模型的性能。如果它们没有显着差异(即过度拟合),您还可以检查训练和测试分数。如果您正在重新培训,您可以与之前的培训分数进行比较。或者,您可以分离一些测试集并比较其分数。
  4. 预测:最后,您需要确保您的最终输出在交付给生产/客户之前是有意义的。例如,如果您正在对一家非常小的商店进行收入预测,则每日收入预测不能是百万美元或一些负数。

完全披露,我为此编写了一个小的 Python 包。您可以在这里查看或下载如下,

pip install mlqa
于 2020-06-04T13:30:37.763 回答