如何专业的对机器学习中的算法进行测试,保证算法结果的正确性?

先上结论:保证算法结果的正确性 , 需要从「算法推导的正确性」、「算法效果的正确性」和「算法应用的正确性」3个维度来考虑 。 下面人邮君展开来说:
01.算法推导的正确性算法推导的正确性 , 指的是对算法本身的推导和实现进行测试检查 , 主要可针对自研算法 , 可做算法的单元测试等 。
算法是可供计算机执行的对数据进行处理的一个有穷步骤 , 是解决问题的一个逻辑顺序 , 是解题方法的精确描述 , 它有一些精确定义的操作规则 , 每条规则是确定的、能行的 , 不能有二义性 。 所以 , 尤其是对于自研算法来说 , 需要对推导过程的进行检查 , 以保证其正确 。 以单元测试阶段为例 , 主要包含项目规范检查、静态代码检查、代码逻辑覆盖、算法高效性分析、服务异常处理几个测试点 。
02.算法效果的正确性即对不同算法训练出的模型预测效果进行评估 , 测试其泛化能力 。
常用的测试方法有:蜕变测试 , 即根据公式特点 , 特定变换数据 , 进行结果比较 , 如类别标签乱序、属性乱序、增加无信息属性、一致重复预测等;大数据ETL测试;特征指标分析;模型效果评测 , 专业指标评测(KS、PSI、精确率、召回率、AUC、F1 Score等);
在《机器学习测试入门与实践》这本书中 , 对大数据ETL测试、模型效果评测等进行了很详细的介绍 。
如何专业的对机器学习中的算法进行测试,保证算法结果的正确性?文章插图
比如大数据ETL测试 , 与传统数据测试过程类似 , 大数据ETL测试也需要经历分析业务需求-制定测试计划-设计测试试用例并准备测试数据-静态代码CR-执行测试-生成测试报告并分析结果-测试完成这几个过程 , 书中除介绍具体流程外 , 还对测试方法(比如功能性测试和非功能性测试)、测试场景给出了清晰的说明 。
如何专业的对机器学习中的算法进行测试,保证算法结果的正确性?文章插图
图源:《机器学习测试入门与实践》
这本书能够帮助读者了解机器学习是如何工作的 , 了解机器学习的质量保障是如何进行的 。
03.算法应用的正确性即保证上层功能应用的正确性 , 端到端的测试保证 , 覆盖代码逻辑、服务性能、安全性、功能场景等 。 同时 , 还要保证模型线上的稳定性 , 如离线与在线的一致性(特征、模型) , 小样本试验 , AB测试 , 模型效果监控等 。
同样在《机器学习测试入门与实践》书中 , 也对算法应用给出了说明 。 比如在模型测试部分 , 结合机器学习生命周期 , 对AB测试、模型效果监控等给出了详细说明 。 其中 , 针对AB测试 , 作者谈到 , AB测试有两种形式 , 模型B“陪跑” , 不进行决策;模型A和模型B按照流量划分 , 同时进行决策 。
以上3个维度主要讲算法测试的方法及不同侧重 , 又该如何对算法测试提效呢?可以从以下几个方面思考 , 如:自动化、工具化、服务化、可视化 。 并进一步在模型效果评测、模型实验追踪、模型效果监控等方面做平台化实践 。 这在《机器学习测试入门与实践》这本书里 , 通过模型工程、AI In Test两大篇章 , 进行了全面的介绍 。
【如何专业的对机器学习中的算法进行测试,保证算法结果的正确性?】针对机器学习测试 , 人邮君推荐同学们看一下《机器学习测试入门与实践》这本书 , 这是业界第一本AI测试著作 , 精选15个AI测试要点 , 从零开始 , 帮助想要做测试的同学全面了解机器学习测试 。 涵盖5个技术主题 , 大数据、模型算法、模型评测、工程架构、智能化测试 。 内容设计深入浅出 , 学习路线清晰 , 帮助读者了解机器学习是如何工作的 , 了解机器学习的质量保障是如何进行的 , 相信你一定有很大的收获 。