机器学习模型测试-入门篇

2020-05-20  本文已影响0人  李春辉

经常被问,机器学习模型怎么测试呢?和传统软件测试有啥差别?


与传统软件测试的差别

测试是验证被测对象是否符合预期。

不论是传统软件还是机器学习,测试目的都是检验被测对象是否符合预期。不同点在于:

传统测试:检测程序的输出结果是否符合预期的正确值。
模型验证:通过检验一组带标签的数据的模型结果是否符合预期的准确率或误差,来评估模型的好坏。


模型测试有套路

数据 + 算法 = > 模型

通俗地讲,所谓模型,就是把大量的数据喂给算法,然后自行修炼成才。
测试模型,就是检验自行修炼成才的她,是否达到预期的标准,达到优秀标准可毕业(发布模型);如修炼不达标,则打回重新修炼。听起来不太好懂,先来看个日常生活中的例子。

套路引子

现有大量的动物图片,一位小朋友妞妞通过看这些动物图片就可以学会认猫咪。
妞妞的大脑结构是个黑盒,怎么运作并不清楚,只知道她读过一定量带标签(是猫为1,不是猫为0)的动物图片就能自学成才,识别出猫咪。
那么,怎么验证妞妞是真得学会了认猫咪?

先选考题:

开始测验

评估结果

这里的妞妞就是机器学习模型的化身,检验妞妞是否学会识别猫咪以及识别的准不准的这个套路,就是模型测试的套路,一样一样滴。所以,模型测试就是通过检验一组带标签的数据的模型结果是否符合预期的评估指标(如:准确率)。

【特别注意】

专业术语

通过妞妞的例子,初识了机器学习模型测试套路以及专业术语,接下来细看机器学习模型测试。


机器学习模型测试

构建模型过程
纵观模型的构建过程,有三步:

构建模型

模型测试三步走
测试施展拳脚的位置也随着构建模型的三个步骤切入。

第一步 拆分数据集
通过妞妞的例子也了解到,模型评估很关键的一点就是测试集,那么,测试集的准备有哪些方法呢?
在机器学习中,测试集是通过对整个数据集的划分选取,一部分用于训练,另一部分用来测试。划分必须满足以下条件:

划分数据集可以选择采用:留出法,交叉验证法及自助法。

在测试过程中,根据实际情况,选取适合的拆分数据集方式,这也是测试人员可下功夫的地方,很多时候需要和数据科学家甚至客户一起沟通确定。

第二步 模型训练
读取数据特征、算法参数,开始训练,输出模型文件。
需要说明一下,算法不做测试,假设它是经过测试验证的。因为,大多机器学习领域用到的算法都是现成的,非常成熟了。如决策数、随机森林等。然而,这一环节需要测试的逻辑是:

本次训练出来的模型性能好与不好,还不清楚,等用测试集测试检验后才可知。

第三步 评估结果
训练好的模型,要通过评价指标来验证模型性能的好坏。模型性能好可发布模型,模型性能不好需要重新训练。
在这里,通常需要和数据科学家以及客户一起制定评估指标,比如准确率要达到95%、召回率要达到85%才可通过。测试人员关注点:

小结

本篇简单介绍了一些入门机器学习测试的相关知识,一句话总结:模型测试就好比学生考试。题库选题、测验、评分,最后决定是否升学。

非常感谢您的阅读,我们下期再见。预告下期分享机器学习项目测试策略篇。

上一篇 下一篇

猜你喜欢

热点阅读