机器学习交付项目通常包含两部分产物,一部分是机器学习模型,另一部分是机器学习应用系统。机器学习模型是嫁接在应用之上产生价值的。比如:一款预测雷雨天气的APP,它的雷雨预测功能就是由机器学习模型完成的。
机器学习交付项目:机器学习模型 + 基础应用
机器学习交付项目的测试,就是在测试模型和应用系统。应用系统的测试与传统软件项目测试类似,这里不多赘述;重点介绍机器学习模型测试。
模型测试类型
模型的测试通常要关注以下几种类型:
度量指标效果
度量指标效果指的是检验模型的评估结果如何,即验证模型的正确性。常用评估指标有准确率、精准率、召回率和AUC等等。比如,准确率越高越好,AOC曲线下包含的AUC面积越大越好。
泛化能力
模型在末知数据上的预测能力称为泛化能力,通过数据拆分的方式从数据集中隔离出一份测试数据,用模型末知的这部分测试数据来验证模型泛化能力。常用数据集拆分方法有留出法交叉验证、k折交叉验证、留一法交叉验证以及自助采样法(参见《机器学习测试-入门篇》)。
鲁棒性
又称为健壮性,是指一个计算机系统在执行过程中处理错误,以及算法在遭遇输入、运算等异常时继续正常运行的能力。鲁棒性在机器学习领域是指机器学习系统对微小扰动的恢复能力。例如,在输入图像中加入少量噪声,原本准确度非常高的图像分类模把大熊猫识别成了猴子。
安全性
安