介绍
我们都以一种或另一种方式参与实验。一些广告定位机构正在进行一项实验,以检查要向用户展示哪些类型的广告以获得销售即转化。或者,可能是一些流行的
机器学习课程提供商网站上的一些功能更改,以评估用户最容易接受哪些更改,以及该更改是否会推动实验组织者想要观察的业务 KPI。这种随机实验称为 AB 检验,它被广泛归类为假设检验领域。
实验设计在数据科学中的重要性
来源:freepik创建的组向量
如果你到目前为止和我在一起,那么欢迎来到实验的世界。让我们首先了解什么是实验。
一般来说,实验被定义为:
“为支持或反驳假设,或确定以前未尝试过的事物的功效或可能性而执行的程序。”
基于实验的一般定义,其科学意义涉及假设检验,以检查提出的解决方案是否适用于给定的问题陈述。需要注意的一个关键事项是,实验是以受控方式进行的。
在这篇文章中,我们将了解实验设计在数据科学项目背景下的重要性。所以,让我们再看一下实验设计的定义:
“实验设计是一种用于以有效方式组织、实施和解释实验结果的概念,确保通过进行少量试验获得尽可能多的有用信息”
数据科学家可以通过多种方式在机器学习项目中设计和进行实验。但是首先尝试哪些,团队应该如何计划和同时进行多个实验,并最终将他们的分析与有意义的见解和结果联系起来?需要熟练的数据科学家才能不被大量潜在的聪明和优秀的想法所淹没。他们完全排除了特定的想法和实验,仅仅是因为他们知道哪种算法和方法适用于什么数据集以及所选算法的缺点是什么。这种技能不是一蹴而就的,需要多年的经验才能对实验进行排序,以便在时间和资源上产生更大的回报。
一个例子
很多时候,数据科学家们经常跳到假设哪种类型的机器学习框架最适合手头的问题。了解业务环境是机器学习项目的核心。如何将业务问题映射到统计机器学习问题对于业务成果和影响的成功至关重要。让我们通过一个例子来理解一个典型的机器学习实验是如何进行的:
基于这些输入,数据科学家需要缩小范围并决定使用哪种算法。例如,如果是分类问题,是否使用逻辑回归或随机森林分类器构成实验之一。
设计实验时要考虑的因素:
想法是免费的,它们不花钱。但是要推进和设计实验的想法需要各种考虑。
假设 -对这个实验将如何解决给定问题的直观理解
可用数据 -你有数据开始吗?
所需数据 -拥有大量数据并不能确保项目的成功,需要仔细评估解决业务问题所需的所有属性。与业务领导者举行的初步探索和可行性研讨会有助于将这一要求纳入视野。
努力水平 (LOE) -执行它的努力估计是多少?
自己动手 (DIY) 或开源 -是否有现有的工具、包、库或代码库可以快速利用来得出假设?
独立与否 -实验是依赖于某些前体结果还是解耦?由于来自多个团队的依赖关系或由于缺乏基础设施,执行实验的速度受到阻碍
成功标准 -如何得出实验收益预期回报?
集成测试——你成功的实验是否在一定的约束下工作,并且一旦环境发生变化(这是不可避免的)就不可靠了吗?有统计学意义吗?您对结果的可重复性有多大信心?最终结果是否与机器学习生态系统的其他部分很好地整合在一起?
实验设计简明扼要地解释为确定一组可能推动过程性能的因素,为这些因素中的每一个选择合理的水平,定义一组因素水平的组合,以及根据定义的实验设计。
专业提示 1
经验丰富的数据科学家能够利用他从以前的项目中学到的知识库,并且可以谨慎地选择选定的实验来产生业务价值,而不是四处走动。话虽如此,与团队进行健康的技术讨论并挑选他们的大脑,决定每个实验的利弊,在什么假设下这个实验会成功还是失败,并将它们记录在跟踪器中,这始终是一个好习惯. 这样的讨论将帮助您根据实验的潜在影响和结果对实验进行排序。前提源自机器学习中的集成方法,即单个数据科学家可能无法考虑所有极端情况,除非被第二双眼睛询问(好吧,尽可能多的合格眼睛:))
专业提示 2
很多时候,众所周知,一开始的实验更加以研究为导向,并且数据科学家意识到即使该实验提供了最佳性能,也无法将其投入生产。你一定在想,为什么我们首先要尝试这样的实验?好吧,即使只是理论上的,建立最好的情况也很重要,也就是北极星。这可以估计当前的生产就绪模型版本有多远,以及需要什么样的权衡才能获得最知名的性能。
专业提示 3
进行实验是一回事,准确地分析它是另一回事。您可能只需要通过不同的算法或通过不同的样本集运行多个循环来决定最终的循环。但是如何分析输出是关键。最终选择的实验不仅仅由一个单一的评估指标驱动。它还取决于解决方案在基础设施要求方面的可扩展性以及结果的可解释性。
实验管理
到目前为止,我们已经讨论了实验设计是什么样的?如果您有兴趣学习如何管理多个实验和工件,请参阅这篇出色的文章。它捕获 AI/ML 项目中的变量包,包括但不限于以下内容:
预处理、模型训练和后处理模块
数据和模型版本控制:哪些数据用于训练以前的模型或生产模型?
采样方法:训练数据是如何创建和采样的——它是否不平衡?它是如何处理的?
模型评估:模型是如何验证的,使用了哪些数据?它是否代表将在生产系统中提供服务的数据模型?
算法:你怎么知道在哪个模型版本中使用了哪种算法?让我们也明白,即使新模型版本中的算法可能相同,但架构会发生变化。