本文主要介绍一种算法模型的评测方法,并展示在项目中的实践结果。诸如机器学习等算法模型的采用,因其计算的复杂性,我们很难测试计算结果的正确与否。因此,在项目中,算法模型的测试是算法测试的一个难点。
那么如果评测一个算法模型是否通过了测试呢?关键是要定义评测标准。
既然无法验证计算的正确性,是否可以转换思路,从产品验收的角度来进行测试,虽然,产品方可能对算法模型也无法给出明确的指标,但是可以定义一些期望值。
在一次算法的大改版中,我们尝试了如下的方案:
- 首先了解产品方对这次改版的期望,并把产品方的期望量化成一条条约束条件
- 然后约定通过测试的标准即:一定数据的算法结果中能满足约束条件的最低比例
- 最后准备测试数据,统计计算结果能达到各项约束条件的比例
测试结果如下图所示:
具体实现方案如下:
- 根据测试场景准备测试数据;从数据库中导出部分数据存放在文件中;
- 每条约束条件均为一个测试用例,使用testng来管理用例,并用dataProvider属性指定数据源即1中的文件,下图是一个例子:
- 获取推荐列表,即上图中的recFlowService.getRecResult 方法,主要就是循环调用算法接口,解析并存储返回结果;
- 运行一个用例,并利用testng的报告收集结果,如下图所示:
网易云新用户大礼包:https://www.163yun.com/gift
本文来自网易实践者社区,经作者陈天昊授权发布。