机器学习的引导式自动化
Paolo Tamagnini,Simon Schmid和Christian Dietz是Knime的数据科学家和软件工程师。
我们在这里提出一种用于机器学习生命周期自动化的蓝图解决方案。
自动化机器学习(又名AutoML )要付出的代价是黑盒模型无法控制。 尽管对于定义明确的域的外接数据科学问题来说,这样的价格是可以接受的,但对于更广泛的域中的更复杂的问题,它可能会受到限制。 在这些情况下,实际上需要与最终用户进行一定量的交互。 这种机器学习自动化的较软方法(我们在Knime采取的方法)是通过指导自动化( 指导分析的特殊实例)获得的。
[InfoWorld的要点: 用于AI开发的5种最佳编程语言 。 • 为什么应该使用Python进行机器学习 。 • 朱莉娅与Python的对决:朱莉娅语言在数据科学方面的兴起 • 5个基本的Python数据科学工具-现已得到改进 • 数据科学的Python发行版Anaconda入门 。 • Python的Anaconda发行版中的新增功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]
尽管最终应用程序对最终用户可能看起来很容易,但在后台运行的系统可能非常复杂,因此很难完全从头开始创建。 为了帮助您完成此过程,我们创建了一个交互式应用程序的蓝图,用于自动创建和训练机器学习分类模型。
该蓝图是使用Knime Analytics Platform开发的,可以在我们的公共资源库中找到 。
本文是关于“如何使机器学习自动化”主题的介绍性文章的后续。 在第二篇文章中,我们将更详细地描述在执行Web浏览器应用程序期间幕后发生的技术和算法。
图1:指导性自动化蓝图背后的主要过程:数据上传,应用程序设置,自动模型训练和优化,性能比较仪表板和模型下载。
Web浏览器引导的自动化
让我们看看通过Knime Server从Web浏览器获得的自动化制图指导 。
首先,我们将看到一系列交互点:
- 上载资料
- 选择目标变量
- 删除不必要的功能
- 选择一种或多种机器学习算法进行训练
- (可选)自定义参数优化和功能工程设置
- 选择执行平台。
这些步骤全部汇总在下面的图2中。
图2:此图遵循在Web浏览器上执行引导式自动化的蓝图的过程:(1)上传数据集文件,(2)选择目标变量,(3)过滤掉不需要的列,(4)选择算法以训练,(5)定义执行环境。 流程图的顶部是整个过程的导航栏。
在计算完数字后(即数据预处理,特征创建和转换,参数优化和特征选择以及最终模型的准确性和计算性能方面的重新训练和评估),最终的摘要页面显示了模型性能指标。 在最后一页的最后,我们将找到下载一个或多个受过训练的模型以供将来使用的链接,例如,将其作为生产中的RESTful API。
要查看完整的最终用户体验,您可以在此演示视频“机器学习自动化的引导分析”中观看实际操作中的指导式自动化应用程序。
Knime分析平台
该机器学习自动化的蓝图是使用Knime Analytics Platform开发的。
Knime Analytics Platform是用于数据科学的开源软件,涵盖了您从数据摄取和数据混合到数据可视化,从机器学习算法到数据整理,从报告到部署等等的所有数据需求。 Knime Analytics Platform基于用于可视化编程的图形用户界面。 这使其非常直观且易于使用,从而大大减少了学习时间。 Knime Analytics Platform还被设计为对不同的数据格式,数据类型,数据源,数据平台和外部工具开放。
计算单元在Knime Analytics Platform的GUI中显示为彩色小块,称为“节点”。 在管道中一个接一个地组装节点,以实现数据处理应用程序。 管道称为“工作流”(图3)。
也可以通过Knime服务器从Web浏览器执行工作流程。 专用节点构建输入和输出Web组件,可以将其组装成一个网页。 将这些特殊节点插入工作流中可在执行流程中提供需要输入或显示输出的交互点。
鉴于其开放性,灵活性,可视化编程和基于Web的可选执行,Knime Analytics Platform非常适合实施我们指导的自动化蓝图,以自动创建和训练分类模型。
机器学习自动化背后的工作流程
蓝图背后的工作流程可从Knime网站上的公共Knime示例服务器上获得,也可以通过Knime Analytics Platform在50_Applications / 36_Guided_Analytics_for_ML_Automation / 01_Guided_Analytics_for_ML_Automation下获得。
您可以将工作流程导入Knime Analytics Platform,根据需要对其进行自定义,然后从Knime Server上的Web浏览器运行它。 在此视频中 ,您可以找到有关如何从Knime Examples Server访问工作流并将其导入Knime Analytics Platform的更多详细信息。 蓝图工作流程如下图3所示。
图3:实施所有必需步骤和网页的引导式自动化工作流:设置配置,数据准备和模型训练以及最终的仪表板。
在工作流中,您可以识别基于Web的应用程序的三个阶段:
- 设置配置:上载,选择,微调和执行自动化
- 幕后:数据准备和模型训练
- 最终仪表板:比较和下载模型
设置配置:上载,选择,微调和执行自动化
在工作流的第一部分中,每个浅灰色节点都会生成一个视图,即带有操作请求的网页。 通过Web浏览器运行工作流程到Knime Server时,这些网页会引入尽可能多的交互点,最终用户可以在其中设置首选项并指导分析过程。 您可以看到要上传数据集文件,选择目标变量以及过滤某些特征的节点。
可以根据数据列的相关性或专家的知识来排除数据列。 相关性是色谱柱质量的度量。 该度量基于列中缺失值的数量及其值分布; 缺失值太多或常数或分布值太高的列将受到处罚。 此外,可以手动移除列以防止数据泄漏 。
之后,您可以选择要训练的机器学习模型,可以选择引入参数优化和特征工程的设置,最后选择执行平台。 在执行这些特殊节点期间生成的网页序列如图2所示。
幕后:数据准备和模型训练
在接下来的阶段,号码处理在幕后进行。 这是导向自动化应用程序的核心。 它包括以下操作:
- 缺失值估算和(可选)异常值检测
- 模型参数优化
- 功能选择
- 最终优化的模型训练或再训练
定义所有设置后,应用程序将在后台执行所有选定的步骤。
数据分区 。 首先,将数据集分为训练集和测试集,使用80/20分割,对目标变量进行分层采样。 机器学习模型将在训练集上进行训练,并在测试集上进行评估。
数据预处理 。 在此,使用平均值或最频繁的值逐列估算缺失值。 如果先前选择了异常值,则使用四分位间距(IQR)技术检测异常值并将其限制在最接近的阈值。
参数优化 。 参数优化过程对选定的一组超参数实施网格搜索。 网格搜索的粒度取决于超参数的模型和类型。 每个参数集均采用四重交叉验证方案进行测试,并按平均准确度进行排名。
特征工程和特征选择 。 对于要素工程 ,根据以前的设置创建了许多新的人工列。 可以应用四种列转换:
- 在单列上进行简单转换(例如,x2,x3,tanh(x),ln(x))
- 用算术运算将成对的列组合在一起
- 主成分分析( PCA )
- 聚类距离转换,其中数据按所选要素聚类,并为每个数据点计算到所选聚类中心的距离
在新功能集上运行功能优化过程,该功能集由所有原始功能和一些新创建的功能组成。 最佳功能集是通过按平均准确度排名的四重交叉验证方案通过随机搜索选择的。 可以自定义参数优化和特征工程。 实际上,对于小数据集和简单问题,可以跳过模型优化以避免过度拟合。
模型再训练与评估 。 最后,使用最佳超参数和最佳输入特征集,最后一次在训练集上对所有选定的机器学习模型进行再训练,并在测试集上重新评估其最终准确性。
最终仪表板:比较和下载模型
工作流的最后一部分在登录页面中生成视图。 名为“下载模型”的节点包含预先打包的基于JavaScript的视图,这些视图会产生在最终登录页面中可见的图表,图表,按钮和说明。
在测试集上计算ROC曲线 , 精度度量 , 增益或提升图以及混淆矩阵 ,并显示在此最终目标页面中,以比较精度度量。
在训练和部署期间评估模型执行速度。 部署执行速度被衡量为运行一个输入的预测的平均速度。 因此,两个条形图分别以秒为单位显示模型训练时间,以毫秒为单位显示产生单个预测的平均时间。
所有仪表板视图都是交互式的。 可以更改绘图设置,并且可以实时浏览数据可视化。
同一节点还在页面末尾产生链接,以下载一个或多个训练有素的模型以供将来使用。
易于定制的工作流,用于引导式机器学习
在机器学习的指导自动化领域,我们已经走到了旅程的尽头。
我们已经展示了什么是机器学习的引导自动化,我们对半自动化(引导)机器学习应用程序的解释以及所需的步骤。
我们已经通过Knime Analytics Platform实施了一个蓝图,该蓝图可以免费下载,根据您的需求进行定制并可以免费重用。
在介绍了相关的GUI和分析步骤之后,我们在Web浏览器视图的后面展示了实现应用程序的工作流程。
该工作流已经可以用于二进制和多类分类 ,并且可以轻松自定义并适应其他分析问题,例如,文档分类问题或时间序列分析。 其余的取决于您。
Knime的数据科学家Paolo Tamagnini拥有罗马萨皮恩扎大学的数据科学硕士学位,并拥有纽约大学的数据可视化技术研究经验,以实现机器学习的可解释性。
Simon Schmid目前正在德国的康斯坦茨大学攻读计算机科学硕士学位。 他的研究兴趣是机器学习的自动化。 自2016年以来,他一直在Knime担任软件工程师。 他现在位于德克萨斯州的奥斯汀,完成了进一步的实习,更加深入地探索了机器学习的指导自动化。
克里斯蒂安·迪茨(Christian Dietz)拥有斯图加特商业与管理学院的商业信息学文凭,并获得了康斯坦茨大学计算机科学的硕士学位。 在康斯坦茨大学(University of Konstanz)担任研究程序员之后,他在该大学开发了生物图像分析和机器学习领域的框架和库,然后加入Knime担任软件工程师。 他最近的一些项目包括针对Knime Analytics Platform的深度学习,H2O机器学习和图像处理集成。
有关Knime的更多信息,请访问www.knime.com和Knime博客 。
-
新技术论坛提供了一个以前所未有的深度和广度探索和讨论新兴企业技术的场所。 选择是主观的,是基于我们对InfoWorld读者认为最重要和最感兴趣的技术的选择。 InfoWorld不接受发布的营销担保,并保留编辑所有贡献内容的权利。 将所有查询发送到 [email protected] 。
这个故事“机器学习的指导自动化”最初由InfoWorld发布 。
From: https://www.idginsiderpro.com/article/3334964/guided-automation-for-machine-learning.html