Software Testing - 如何测试机器学习算法正确性

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

先上结论:保证算法结果的正确性,需要从「算法推导的正确性」、「算法效果的正确性」和「算法应用的正确性」3个维度来考虑。

01.算法推导的正确性

算法推导的正确性,指的是对算法本身的推导和实现进行测试检查,主要可针对自研算法,可做算法的单元测试等。

算法是可供计算机执行的对数据进行处理的一个有穷步骤,是解决问题的一个逻辑顺序,是解题方法的精确描述,它有一些精确定义的操作规则,每条规则是确定的、能行的,不能有二义性。所以,尤其是对于自研算法来说,需要对推导过程的进行检查,以保证其正确。以单元测试阶段为例,主要包含项目规范检查、静态代码检查、代码逻辑覆盖、算法高效性分析、服务异常处理几个测试点。

02.算法效果的正确性

即对不同算法训练出的模型预测效果进行评估,测试其泛化能力。

常用的测试方法有:蜕变测试,即根据公式特点,特定变换数据,进行结果比较,如类别标签乱序、属性乱序、增加无信息属性、一致重复预测等;大数据ETL测试;特征指标分析;模型效果评测,专业指标评测(KS、PSI、精确率、召回率、AUC、F1 Score等);

比如大数据ETL测试,与传统数据测试过程类似,大数据ETL测试也需要经历分析业务需求-制定测试计划-设计测试试用例并准备测试数据-静态代码CR-执行测试-生成测试报告并分析结果-测试完成这几个过程。

03.算法应用的正确性

即保证上层功能应用的正确性,端到端的测试保证,覆盖代码逻辑、服务性能、安全性、功能场景等。同时,还要保证模型线上的稳定性,如离线与在线的一致性(特征、模型),小样本试验,AB测试,模型效果监控等。

比如在模型测试部分,针对AB测试,AB测试有两种形式,模型B“陪跑”,不进行决策;模型A和模型B按照流量划分,同时进行决策。

上一篇:zookeeper安装


下一篇:apt-get命令