写点什么

AutoML 取人代之?四个工程师两个数据集将之干翻

  • 2020-01-08
  • 本文字数:5379 字

    阅读完需:约 18 分钟

AutoML取人代之?四个工程师两个数据集将之干翻

过去几年,越来越多科技巨头推出了自己的 AutoML 服务,市场对于此类服务的关注度与认可度也一直在不断提升。数据科学家们一直面临着灵魂拷问:AutoML 会取代我们吗? 本文,四位数据科学家两两一组通过两个数据集与 AutoML 服务正面较量,最终证明:AutoML 取代工程师,缓缓吧!


目前存在哪些 AutoML 平台?

要了解 AutoML,我们先得谈谈机器学习项目的生命周期,具体涵盖数据清洁、特征选择 / 工程、模型选择、参数优化以及最终模型验证。尽管技术快速发展,传统数据科学项目当中仍然包含大量既耗时又重复的手动操作流程。



图片来源:R. Olson 等(2016 年),《在自动化数据科学场景下,对 TPOT(基于树形结构的流水线优化工具)的评估》


AutoML 能够自动完成从数据清洁到参数优化的整个流程,凭借着出色的时间与性能改进效果,为各类机器学习项目带来巨大价值。

1. Google Cloud AutoML

诞生于 2018 年的 Google Cloud AutoML 凭借其友好的用户界面与极高的性能表现,很快在市场上得以普及。下图所示,为 Google 与其他 AutoML 平台之间的性能比较(蓝色柱形为 Google AutoML)。



图片来源:《在结构化数据上利用 AutoML 解决高价值业务问题》,2019 年 Cloud Next 大会


2. 微软 Azure AutoML

同样诞生于 2018 年的 Azure AutoML,为不熟悉编程知识的用户们带来高透明度模型选择流程。

3. H2o.ai

“H2O 已经成为大规模模型构建领域的重要驱动力。面对数十亿级别的参数规模,任何现成的标准开源技术都显得无能为力。” — H2o.ai


H2o 诞生于 2012 年,同时提供开源软件与商业 AutoML 服务(Driverless AI)两种选项。自面世以来,H2O 已经在金融服务与零售等行业得到广泛应用。

4. TPOT

TPOT(基于树形结构的流水线优化工具)由宾夕法尼亚大学开发完成,是一款可免费使用的 Python 软件包。该软件虽然完全免费,但功能方面不打一点折扣,而且在各类数据集上均拥有出色性能表现:Iris 数据集准确率约为 97%,MNIS 数字识别数据集准确率 98%,波士顿房屋价格预测为 10 MSE。

AutoML 对阵数据科学家

现在,我们已经了解了 AutoML 的基本定义及其可用选项。下面来看核心问题:这些平台会全面取代人类数据科学家吗?


为了找到令人信服的答案,我们将通过一场黑客马拉松,客观评估 AutoML 与人类之间的分析能力差异。

成本比较

根据 Indeed.com 网站的统计,美国数据科学家的平均年薪为 12 万 1585 美元。而 如果一家企业全年持续使用 AutoML(每周 40 小时,每年 52 周),则费用每年在 4160 美元到 41600 美元之间,具体视实际平台选项而定。


诚然,这样的直接比较并不合理,因为我们都知道数据科学家在模型操作之外还有其他工作需要处理。但在另一方面,这种快速简单的方法,仍能在一定程度上体现数据科学家与 AutoML 的成本差异。



数据科学家与 AutoML 之间的成本比较


性能比较:黑客马拉松

下面,我们将组织一场涵盖两套数据集的黑客马拉松,进一步比较人类数据科学家与 AutoML 平台之间的性能差异。每套数据集,对应一支人类数据科学家小组以及多个 AutoML 平台。双方将同步进行数据处理、特征选择 / 工程、模型选择以及参数调整,并最终努力给出符合预定性能指标的最佳预测结果。



黑客马拉松数据集 1:快速分类



黑客马拉松数据集 2:ASHRAE(回归)


数据集 1:快速分类数据集

数据集概述



该数据集收集自参与实验性快速约会活动的人群。在这些活动中,参与者会填写一份调查表,其中包括个人信息以及他们理想中的伴侣所应具备的特征。例如,他们会以从 1 到 10 几个等级评论自己、自己从事的工作,以及希望伴侣表现出哪些特质。这套数据集的目标,在于根据个人喜好预测其能否找到适合自己的匹配对象。这是一个典型的分类问题,我们将“match”变量作为因变量。


数据科学家的数据预处理与特征工程



为了获得优于 AutoML 平台的结果,人类数据科学家需要对数据集进行特征设计、处理类失衡问题、处理缺失值,并对分类变更执行独热编码。由于数据收集自调查问卷,因此必须存在严重的值缺少问题——这是因为如果采访者不愿意回答某个问题,则可直接留空。这些缺失值只能通过适当估算均值、中位数或者众数等方式解决。由于数据在某些自变量之间具有共线性,因此某些变量会被删除。在所有标签当中,只有 29% 的二进制值为 1,其他部分的二进制值则为 0。为了解决这个问题,我们采用 SMOTE(合成少数过采样技术)。SMOTE 能够从少数类当中创建合成样本,而非简单复制数据。独热编码在谷歌平台上往往难于实现,这是因为该平台无法以有意义的方式对提取到的信息进行分组。


现在,我们将利用原始与特征工程处理后的数据,对 Azure 及谷歌的 AutoML 平台进行整体有效性分析。

数据科学家对阵 AutoML 平台


数据科学家: 我们尝试了多种不同模型,而后发现 XGBoost 与神经网络模型的性能最好。我们在其中主要关注 AUC ROC 评分,以便将模型结果与 AutoML 平台创建的模型进行比较。XGBoost 模型的 AUC ROC 得分为 0.77,神经网络模型的 AUC ROC 得分则为 0.74。


使用原始数据的 AutoML 平台: 同样采用 XGBoost,谷歌的性能水平要比 Azure 了一些。谷歌的 AUC ROC 得分为 0.881,Azure 则为 0.865。由于相关信息被划定为专有信息,因此我们无法得知谷歌平台到底选择了哪种模型。另一方面,Azure 则会准确告知其运行了多少个模型,每个模型的得分是多少,以及训练各个模型所花费的时间。


使用处理后数据的 AutoML 平台: 现在,我们希望测量经过特征工程处理的数据集又将在 AutoML 上拥有怎样的性能表现。我们注意到:谷歌的性能有所下降,Azure 性能则得以改善。如前所述,谷歌 AutoML 在处理独热编码方面存在问题,其设计思路在于自主进行特征工程。因此,以独热码变量的形式提供特征工程数据,反而会导致其整体性能下滑。在这轮测试中,Azure 的性能由 0.865 提升到了 0.885。


下图所示,为 Azure 在数据集上运行的各套模型:



我们也可以看到谷歌与 Azure 平台上的 Precison-Recall 图、ROC 图、混淆矩阵以及特征重要度图:



快速(约会)分类数据集测试结论:


  • 数据科学家能够向 AutoML 平台提供特征工程数据集,从而提高该平台的性能水平。

  • Azure 在具体使用模型方面更为透明;谷歌平台则拒绝公开模型创建与选择信息。

  • 谷歌无法很好地处理独热码变量。

数据集 2: ASHRAE


数据集概述


这套数据集来自 ASHRAE Energy Prediction Kaggle 竞赛,要求参赛者们开发出一套面向 1449 处建筑物内热水、冷水、蒸汽以及仪表计数的预测模型。这些数据源自建筑物的一系列相关元数据,包括占地面积、建成时间以及楼层总数;仪表类型与时间戳读数;带有时间戳的天气数据,包括气温、云量、降水量、风速、风向以及海平面压力等。天气数据由建筑物所在地附近的气象站提供。


数据科学家的数据预处理与特征工程



天气数据集当中同样存在着严重的值缺失问题,可以看到云量与降水量这两项特征分别存在 50% 与 35% 的缺失比例。部分气象站甚至压根不提供云量与降水量数据。为了克服这一障碍,数据科学家们尝试对气温、露水温度、风速以及海平面压力等特征进行整理,借此为缺失部分建立插值,并利用这些插值为云量与降水量建立预测模型。


我们利用 10 倍交叉验证为各项特征选定插值方法,并将其应用于训练与测试数据。我们运行了一系列模型以预测云量与降水量,但始终未能找到可准确生成缺失值的理想模型。风向测量存在间隔,因此我们将每组数据重构为一组分类变量;由于存在明显的右偏分布,我们对风速结果进行了对数转换。此外,我们还构建起其他一些特征,包括假期和周末,同时引入了影响滞后因素。总而言之,我们额外构建起 19 项特征,再加上 13 项原始特征,总计 32 个变量。


最后,我们删除了一条由气象站收集到的异常天气数据,而后利用正向、反向与逐步回归找出最佳预报特征,因此预测中实际使用的变量为 13 个。

数据科学家对阵 AutoML 平台


数据科学家: 我们并没有为所有建筑物构建通用模型,而是为数据集内的每栋建筑物构建起对立的光梯度增强模型,确保训练与测试集内包含相同建筑物的信息。通过这种方法,我们获得了 0.773 RMSLE。


使用原始数据的 AutoML 平台: 经过一个小时的训练,谷歌云获得了 1.017 RMSLE;再训练三个小时,RMSLE 又进一步提升了 0.011。在这轮测试中,谷歌轻松超越 Azure,后者的 RMSLE 为 2.22。当然,这一比较并不算完全公平,因为我们要求 Azure 强制使用随机森林以返回 RMSLE 结果。


使用处理后数据的 AutoML 平台: 我们通过谷歌云运行处理后的数据。在经过四个小时的训练后,谷歌云的 RMSLE 为 1.7,这让我们相当惊讶。经过进一步调查,我们发现自己的特征选择方法限制了 AutoML 的性能,因为 AutoML 平台希望执行自己的特征选择。我们再次通过两套平台运行处理后的数据,且使用全部 32 个变量——而非之前提到的 13 个。这一次,两套平台的性能都得到了改善。经过一个小时的训练,谷歌云的 RMSLE 为 0.755,四小时训练后的 RMSLE 进一步达到 0.656——这远远超过了数据科学家们拿出的结果!经过一个小时的训练,Azure 的 RMSLE 为 3.826,四小时训练后的结果则为 3.653。


ASHRAE 数据集测试结论:


  • 尽管 AutoML 是一款强大的预测工具,但仍无法像人类那样有效进行数据预处理。

  • 将训练周期延长几个小时,可以大大提高 AutoML 平台的性能表现。

  • 必须允许 AutoML 平台自行选择特征,否则可能会严重影响其性能表现。

  • 将数据科学家在业务问题上的专业知识,同 AutoML 强大的特征选择、特征预处理、模型选择以及超参数调优功能相结合,将迸发出强大的能量,为我们带来宝贵的洞察见解与理想的预测结果。

结论

  • 最后,我们用三个问题来结束此番讨论。


AutoML 能替代数据科学家吗?答案是否定的。


虽然 AutoML 确实擅长构建模型,但仍然无法胜任大部分数据科学家所熟悉的工作内容。我们需要仰仗数据科学家来定义业务问题,需要他们运用自己的专业知识构建更多具有实际意义的特征。如今,AutoML 还只能处理有限几种问题类型,例如分类与回归问题;换言之,它们还无法建立推荐与排名模型。更重要的是,我们仍然需要由数据科学家从数据当中整理出可行洞察,这是单凭 AutoML 所无法做到的。


但是,AutoML 仍能帮助数据科学家为利益相关方创造出巨大的价值。因此,接下来要回答的问题是:我们何时该使用 AutoML?又该如何使用?


数据科学家该如何充分利用 AutoML 平台?在这里,我们可以参考以下几个潜在用例。


性能比可解释性更重要时:


有时候,利益相关方可能只关注模型精度,而不要求模型必须拥有明确的可解释性。根据我们的实验,保证 AutoML 具有合理的特征工程发挥空间似乎有助于性能提升。但在示例当中,两套平台只在特征重要度方面体现出一点点可解释性。换句话说,如果只了解特征重要度就够了,那么 AutoML 可能会成为实现更高分析精度的理想选项。


生产速度非常重要时:


谷歌与 Azure 都提供将模型部署至生产环境中的便捷方法。例如,谷歌云允许用户通过几次点击快速实现批量与在线预测。它还允许用户通过 API 将模型部署至自有网站。这些功能,将使得数据科学家显著加快生产速度并减少实际工作量。


时间较为紧迫时:


数据科学家肩上的担子可不轻,所以时间对他们来说无比宝贵。在日常工作中,数据科学家需要没完没了地参加由产品经理、业务负责人、员工以及客户组织的会议,维护现有模型、进行数据收集 / 清洁、为下一次会议做准备等等等等。因此,AutoML 将成为节约时间的重要工具,几次点击再几块小钱,就让帮助我们训练出具备一定性能的模型。如此一来,大家就能专注于处理那些最具价值回报的关键任务(有时候,把 PPT 做得漂亮一点,可能要比把模型精度提升 1% 重要得多)。


原文链接:


https://towardsdatascience.com/the-death-of-data-scientists-c243ae167701


2020-01-08 14:582903

评论

发布
暂无评论
发现更多内容

混合云管平台哪家强?采购时候需要注意什么?

行云管家

混合云 云管平台

基于 Kafka 的实时数仓在搜索的实践应用

vivo互联网技术

kafka 服务器 搜索 数据舱

如何通过 draftjs 设计留言框

全象云低代码

前端 低代码 留言 draftjs 留言框

移动开发er,10万奖金等你来战!

Speedoooo

活动 前端开发 移动开发 黑客马拉松 黑客松

“pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘

华为云开发者联盟

Python pip 批处理 scripts pip install

2022年中国智慧医疗行业洞察

易观分析

智慧医疗

Hudi Bucket Index 在字节跳动的设计与实践

字节跳动数据平台

数据库 字节跳动 数据湖 Hudi

oracle数据库审计用什么数据库审计软件好?可以用什么方式部署?

行云管家

数据库 IT运维 数据库审计

【重磅发布】蚂蚁动态卡片,让 App 首页实现敏捷更新

蚂蚁集团移动开发平台 mPaaS

ios android 前端 mPaaS

Milvus 图形化管理工具 Attu 来袭!

Zilliz

数据库

ModStartCMS模块化建站系统 v3.3.0 组件功能升级,事件触发增强

ModStart开源

前所未有的 Milvus 源码架构解析

Zilliz

掌握这些招数,你也能写出HR眼中的高分简历

Tom弹架构

求职面试

大咖说|对话路特斯科技副总裁李博:如何看待智能驾驶的未来?

大咖说

阿里巴巴 智能 汽车 无人驾驶 路特斯

了解 DevOps,必读这十本书!

禅道项目管理

DevOps

乘冬奥之风:北京2022年冬奥会用户信息获取偏好专题分析

易观分析

冬奥会用户分析

Deep dive #2:API 与 Python SDKs 详解

Zilliz

Python 数据库

混合编程:如何用pybind11调用C++

华为云开发者联盟

c++ Python API 混合编程 pybind11

Android技术分享| 【你画我猜】Android 快速实现

anyRTC开发者

音视频 移动开发 互动白板 Andriod 你画我猜

云效发布策略指南|滚动、分批、灰度怎么选?

阿里云云效

云计算 阿里云 云原生 持续交付 发布策略

Go 语言入门很简单:读写锁

宇宙之一粟

读写锁 Go 语言 2月月更

为什么我的 ORDER BY create_time ASC 变成了 order by ASC

LigaAI

Java 数据库 sql 程序员

虎符交易所2022年首届交易大赛 最高瓜分5万USDT奖励

区块链前沿News

虎符交易所

边缘计算场景下Service Mesh的延伸和扩展

华为云原生团队

开源 边缘计算 边缘技术 边缘 边缘云

web前端培训:vue3源码中细节知多少

@零度

Vue 前端开发

一个关于 += 的谜题

AlwaysBeta

Python 编程语言

优化| 手把手教你学会杉数求解器(COPT)的安装、配置与测试

杉数科技

线性规划 求解器 优化求解器 混合整数规划 杉数科技

产品经理:「点这里,我要跳到任何我想跳的页面」—— 解耦提效神器「统跳路由」

百瓶技术

ios 前端 客户端 路由

极致用云,数智护航

阿里云云效

阿里云 DevOps 运维 云原生 运维安全

百度飞桨大企业开放创新中心联合赋能计划启动!助力浦东产业智能化升级

百度大脑

「前端CI/CD系列」第二篇:如何用建木CI更新七牛云CDN证书

Jianmu

CDN 自动化运维 七牛云 建木CI

AutoML取人代之?四个工程师两个数据集将之干翻_AI&大模型_Joseph Chin_InfoQ精选文章