当前位置: 首页 > 科技观察

AutoML取代人?四个工程师两个数据集翻出来了!

时间:2023-03-13 22:03:03 科技观察

过去几年,越来越多的科技巨头推出了自己的AutoML服务,市场对这类服务的关注度和认可度也越来越高。数据科学家一直面临灵魂拷问:AutoML会取代我们吗?在这篇文章中,四位数据科学家通过两对数据集与AutoML服务正面较量,最终证明AutoML取代了工程师,放轻松!目前存在哪些AutoML平台?要了解AutoML,我们首先需要谈谈机器学习项目的生命周期,它涵盖数据清洗、特征选择/工程、模型选择、参数优化,最后是模型验证。尽管技术进步很快,但传统的数据科学项目仍然涉及大量耗时且重复的手动过程。图片来源:R.Olson等人。(2016),《在自动化数据科学场景下,对 TPOT(基于树形结构的流水线优化工具)的评估》AutoML可以自动化从数据清理到参数优化的整个过程,以出色的时间和性能改进为各种机器学习项目带来巨大价值。1.GoogleCloudAutoML诞生于2018年,凭借友好的用户界面和高性能,GoogleCloudAutoML迅速在市场上流行开来。下图是谷歌和其他AutoML平台的性能对比(蓝色柱子是谷歌AutoML)。来源:《在结构化数据上利用 AutoML 解决高价值业务问题》,CloudNextConference20192.MicrosoftAzureAutoML也是在2018年从AzureAutoML诞生,为不熟悉编程知识的用户带来高度透明的模型选择过程。3.H2o.ai“H2O已经成为大规模模型构建领域的重要推动力,面对数十亿参数规模,任何现成的标准开源技术都无能为力。”—H2o.aiH2o诞生于2012年,同时提供开源软件和商业化的AutoML服务(DriverlessAI)。自诞生以来,H2O已广泛应用于金融服务、零售等行业。4.TPOTTPOT(Tree-BasedPipelineOptimizationTool)由宾夕法尼亚大学开发,是一个免费使用的Python包。虽然该软件是完全免费的,但在功能上丝毫没有妥协,在各种数据集上都有出色的表现:Iris数据集的准确率约为97%,MNIS数字识别数据集的准确率是98%,波士顿房价预测为10MSE。AutoML与数据科学家现在,我们已经了解了AutoML的基本定义及其可用选项。这是核心问题:这些平台会完全取代人类数据科学家吗?为了找到令人信服的答案,我们将通过一场黑客马拉松来客观评估AutoML与人类的分析能力差异。成本比较根据Indeed.com的数据,美国数据科学家的平均年薪为121,585美元。而全年(每周40小时,每年52周)持续使用AutoML的企业每年的成本在4160美元到41600美元之间,具体取决于实际的平台选项。诚然,这种直接比较没有意义,因为我们都知道数据科学家除了模型操作之外还有其他工作要处理。但另一方面,这种快速简单的方法还是能在一定程度上反映出数据科学家和AutoML之间的成本差异。CostComparisonDataScientistsandAutoMLPerformanceComparisonPerformanceComparisonbetweenDataScientistsandAutoML:Hackathon下面,我们将组织一次涵盖两个数据集的黑客马拉松,以进一步比较人类数据科学家和AutoML平台之间的性能差异。每个数据集对应一个人类数据科学家团队和多个AutoML平台。双方将同时进行数据处理、特征选择/工程、模型选择和参数调整,最终力求给出满足预定性能指标的最佳预测结果。黑客马拉松数据集1:快速分类黑客马拉松数据集2:ASHRAE(回归)数据集1:快速分类数据集数??据集概述该数据集是从参加实验性快速约会活动的人那里收集的。在这些活动中,参与者填写一份问卷,其中包括个人信息和理想伴侣的特征。例如,在从1到10的范围内,他们对自己、他们所做的事情以及他们对合作伙伴的期望进行评分。这组数据集的目标是预测他们能否根据个人喜好找到合适的匹配。这是一个典型的分类问题,我们将“匹配”变量作为因变量。数据科学家的数据预处理和特征工程为了获得比AutoML平台更好的结果,人类数据科学家需要对数据集进行特征工程处理,处理类不平衡问题,处理缺失值,并对分类变化执行单热编码。由于数据是从问卷中收集的,因此肯定存在严重的缺失值——这是因为如果面试官不愿意回答一个问题,可以简单地留空。这些缺失值只能通过正确估计均值、中值或众数来解决。由于数据在某些自变量之间存在共线性,因此删除了一些变量。在所有标签中,只有29%的二进制值为1,而其余的二进制值为0。为了解决这个问题,我们采用SMOTE(合成少数过采样技术)。SMOTE能够从少数类别中创建合成样本,而不是简单地复制数据。one-hot编码往往难以在Google平台上实现,因为该平台无法以有意义的方式对提取的信息进行分组。我们现在将使用原始数据和特征工程数据对Azure和Google的AutoML平台进行整体有效性分析。数据科学家与AutoML平台数据科学家:我们尝试了多种不同的模型,发现XGBoost和神经网络模型表现最好。这里我们主要关注AUCROC分数,以便将模型结果与AutoML平台创建的结果进行比较。XGBoost模型的AUCROC得分为0.77,神经网络模型的AUCROC得分为0.74。使用原始数据的AutoML平台:同样使用XGBoost,谷歌的性能水平比Azure好一点。Google的AUCROC分数是0.881,Azure的是0.865。由于相关信息属于专有信息,我们无从知晓谷歌平台选择了哪种模式。另一方面,Azure会准确说明它运行了多少个模型,每个模型的分数是多少,以及训练每个模型需要多长时间。AutoMLPlatformUsingProcessedData:现在我们要衡量特征工程数据集在AutoML上的表现。我们注意到:Google的性能下降了,而Azure的性能提高了。如前所述,GoogleAutoML存在单热编码问题,旨在自主进行特征工程。因此,以one-hot编码变量的形式提供特征工程数据实际上会导致其整体性能下降。在这一轮测试中,Azure的性能从0.865提高到0.885。如下图所示,是Azure在数据集上运行的各组模型:我们还可以看到Google和Azure平台上的Precision-Recall图、ROC图、混淆矩阵和特征重要性图:fast(dating)分类数据集测试结论:数据科学家能够为AutoML平台提供特征工程数据集,从而提高平台的性能水平。Azure对具体的使用模型更加透明;谷歌平台拒绝透露模型创建和选择信息。Google不能很好地处理单热编码变量。数据集2:ASHRAE数据集概述该数据集来自ASHRAE能源预测Kaggle竞赛,该竞赛要求参与者开发一个预测模型,用于预测1449座建筑物中的热、冷、蒸汽和仪表计数。这些数据来自与建筑物相关的一系列元数据,包括建筑面积、建造时间和总楼层数;仪表类型和带时间戳的读数;以及带时间戳的天气数据,包括温度、云量、降水量、风速、风向和海平面压力等。天气数据由建筑物所在位置附近的气象站提供。数据科学家和特征工程天气数据集的数据预处理也存在严重的缺失值。可以看出,云量和降水量这两个特征的缺失率分别为50%和35%。有些气象站甚至根本不提供云量和降水数据。为了克服这一障碍,数据科学家试图组织气温、露点温度、风速和海平面压力等特征,为缺失的部分创建插值,并使用这些插值来构建云量和降水量的预测模型。我们使用10折交叉验证为每个特征选择插值方法并将其应用于训练和测试数据。我们运行了一系列模型来预测云量和降水量,但无法找到能够准确生成缺失值的理想模型。在风向测量中发现了差距,因此我们将每组数据重建为一组分类变量;由于明显的右偏分布,我们对风速结果进行了对数转换。此外,我们构建了其他特征,包括假期和周末,同时引入了滞后。总而言之,我们构建了19个附加特征,加上13个原始特征,总共32个变量。最后,我们去掉了气象站收集到的单条异常天气数据,然后通过前向、后向、逐步回归来寻找最好的预测特征,所以预测中实际使用的变量个数是13个。DataScientistvsDataScientistvs.AutoMLPlatformDataScientist:我们没有为所有建筑物构建一个通用模型,而是为数据集中的每个建筑物构建一个相反的LightGradientAugmented模型,确保训练集和测试集包含相同的建筑物信息。通过这种方法,我们获得了0.773RMSLE。使用原始数据的AutoML平台:经过一个小时的训练,GoogleCloud达到了1.017RMSLE;另外三个小时的训练将RMSLE进一步提高了0.011。在这一轮测试中,Google轻松超过了Azure,后者的RMSLE为2.22。当然,这种比较并不完全公平,因为我们要求Azure强制随机森林返回RMSLE结果。使用处理过的数据的AutoML平台:我们通过谷歌云运行处理过的数据。经过四个小时的训练,谷歌云以1.7的RMSLE出乎我们的意料。经过进一步调查,我们发现我们自己的特征选择方法限制了AutoML的性能,因为AutoML平台要执行自己的特征选择。我们再次通过两个平台运行处理后的数据,并使用所有32个变量,而不是之前提到的13个。这一次,两个平台的性能都得到了提高。训练一小时后,GoogleCloud的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可能是实现更高分析精度的理想选择。当生产速度很重要时:Google和Azure都提供了将模型部署到生产中的简单方法。例如,谷歌云允许用户通过几次点击快速实现批量和在线预测。它还允许用户通过API将模型部署到自己的网站。这些功能将使数据科学家能够显着加快生产速度并减少实际工作量。当时间至关重要时:数据科学家肩负重任,因此时间对他们来说极其宝贵。在日常工作中,数据科学家需要参加由产品经理、业务负责人、员工和客户组织的没完没了的会议,以维护现有模型、执行数据收集/清理、为下次会议做准备等。因此,AutoML将成为节省时间的重要工具。几次点击和几美元将帮助我们训练具有一定性能的模型。这样一来,大家就可以专注于回报最有价值的关键任务(有时候,把PPT做的更漂亮,可能比把模型准确率提高1%更重要)。