为什么 AutoML 是数据科学家必不可少的新工具



原文:Why AutoML is An Essential New Tool For Data Scientists
作者:Dan Roth
链接:https://danrothdatascience.github.io/datascience/autoviml.html
        机器学习(ML)是通过利用计算机智能的算法对统计现象进行建模的典型范例。建立 ML 模型以预测房价,根据潜在的营销兴趣汇总用户以及用图像识别技术来识别脑瘤是很常见的。但是,到目前为止,这些模型都需要进行严格的反复试验,以优化看不见数据的模型性能。
        自动化机器学习(AutoML)的出现旨在通过提供设计良好的管道来处理所需的资源(时间和专业知识),以处理数据预处理,特征选择以及模型创建和评估。虽然 AutoML 最初可能只吸引希望利用 ML 功能而不消耗宝贵预算和雇用熟练数据从业人员的企业,但它也蕴含着非常有希望成为有经验的数据科学家无价工具的巨大希望。
        由于当前机器学习工具的谬误,数据科学家通常难以在紧迫的时间范围内生成有效的模型。他们在僵化的框架,跨平台的可重复性缺乏,协作的障碍以及尚未完全开发的软件工具方面苦苦挣扎。当前提供了许多不同的 AutoML 工具,但是它们并非没有缺点。通常,它们将用户限制在严格的工作流程中,充当黑匣子。它们产生令人印象深刻的结果,但几乎没有可解释性和可重复性。关于自动建模软件实际上是如何达到最佳模型的,或者为什么选择保留某些特征而不提供其他特征,几乎没有任何解释。一些数据科学家还认为避免使用此类工具。
        从免费的开源工具(例如 WEKA 或 Auto-Sklearn)到最昂贵的平台(例如,数据机器人,Data Robot, H2O Driverless AI 和 Dataiku),AutoML 领域挤满了 AutoML 的众多选择。尽管网络上有很多关于这些工具的文章,但我尝试下该领域的最新参与者。

Auto_ViML
        该工具被称为Auto_ViML或自动变体可解释机器学习(发音为Auto_Vimal),它是一个功能齐全但免费的 AutoML。
        AutoViML 的输入是不可知的,因此它可以接受任何以 pandas 数据框形式存在的数据集。它执行类别特征转换和简单的数据清理步骤,例如将丢失的值标识为missing,以便最好地将它们留给模型来决定如何使用它们。
        该库会自动执行特征约简(或特征选择)以生成最简单的模型,在这种情况下,可以生成合理、高性能、所需特征数最少的模型。我发现由 AutoML 生成的模型会自动减少所选特征集中的多重共线性,并通过迭代超过 15 种不同的 ML 选项(详细信息如下)来生成性能良好的模型。最重要的是,它不仅产生最佳性能的模型(基于您的评分指标),而且还提供了详细而冗长的输出,使您可以进行大量的理解和模型可解释性(因此 Auto_ViML 名称中的术语可解释) 。
        我决定尝试一下 Auto_ViML,其中包含一些著名的数据集。要开始使用 Auto_ViML 就像 1-2-3 一样简单:
通过pip install autoviml安装 Auto_ViML
将数据集加载到数据框中,然后将其拆分为训练和测试集
通过一行代码调用 Auto_ViML
我在这里[1]为实验附上了 Jupyter 笔记本。
艾姆斯住房数据集的线性回归
        通过使用 Auto_ViML 测试各种不同的数据集,有效地展示了 Auto_ViML 工作流程的好处。自动建模器首先使用 Ames 住房数据集创建了一个非常有效的线性回归模型来预测房屋的销售价格。数据分为训练集和测试集,并提供有目标变量作为 Auto_ViML 的参数。所有这些都可以在一行中完成:
    model_home, features_home, trainm_home, testm_home = Auto_ViML(train, 'SalePrice', test, verbose=2, scoring_parameter='r2')
        回归分析提供了最有效的住房数据处理方法见解。通过让 Auto_ViML 创建多项式项(包括相互作用)来创建一条最合适的线。这种内置的特征工程将 RMSE 从 25640.78 美元降低到 23255.65 美元,这在预测房价方面是可观察到的改进。经外部评估,最终模型的 R2为 0.91。

        该库还生成了一个特征重要性图,表明新添加的总地下室平方英尺和地面居住区平方英尺多项式变换与目标变量具有很强的指数关系。最终模型使用了 Lasso 正则化(Alpha=79)。能够离开 Auto_ViML 进程,了解哪些特征转换最相关,哪些特征在建模目标变量,类型和类型方面最无用,这是有见地的。最适合此问题的模型正则化强度。

verbose= 2 并且 Boosting_Flag = True 时,Auto_ViML 巧妙地合并 SHAP 特征重要性图,以便采用 XGBoost 模型。
分类员工流失
        Auto_ViML 以类似的洞察力处理了二进制分类问题。结果发现,使用 IBM Watson HR 数据集时,高度正则化的 Logistic 回归模型(C = 20)能够最好地预测员工的减员率。自动建模人员凭直觉就知道要优先召回积极的员工(选择离开公司的员工),这是针对此特定问题的合适的优化方法。Auto_ViML 计算出 0.91 的 F1 分数时的最佳阈值为 0.49,得出的结论是,单个模型对该任务的执行效果非常好。

        员工流失的问题不仅在于期望强大的预测准确性,而且在于理解员工流失的内在动力的能力。AutoViML 的特征重要性图可准确指出一些确定员工流失的更具预测性的因素,例如员工的工作参与程度以及他们是否必须加班或拥有股票期权。在具有许多内置特征的数据集中,此 Auto_ViML 管道还可以精确定位与其他特征关联性太高并因此具有冗余性的特征。Auto_ViML 发现,员工的总工作年限,当前职务的年限,现任经理的年限以及年薪并不是特别有用的特征。其中一些发现令人惊讶,因为数据科学家可能会假设他们在对员工减员进行建模时应突出显示这些特征属性。AutoML 的见解可以帮助指导数据科学工作流程,成功地引导建模管道清除不必要的特征,这些不必要的特征可能会在特征工程过程中引起麻烦。

使用 Auto_ViML 进行犯罪预测
        包含数百万个观测值的大型数据集通常会给数据科学家带来严峻的挑战。这些数据存储迫使数据从业人员处理大量整理和清理数据,同时还试图发现嵌套在数据中的潜在趋势和预测因素。为了观察大型数据集的 Auto_ViML 功能,我从 Kaggle 选择了伦敦犯罪记录数据集,该数据集具有 1百多万行和 7 个特征,供我的下一个测试使用。
        为了预测伦敦警察记录数据集中存在的多种犯罪,能够将 Auto_ViML 的不平衡标志用于此任务非常有用。大量的数据观察结果也使其可以尝试使用 Auto_ViML 的模型堆叠功能,如下所示:
    model_crime, features_crime, trainm_crime, testm_crime = Auto_ViML(train, 'Crime type', test, verbose=2,    scoring_parameter='weighted_f1',    Imbalanced_Flag=True, Stacking_Flag=True)
        运行带有和不带有堆栈的两个测试表明,模型堆栈提供了更强的宏平均(macro-average) F1 得分(从 0.06 改善到 0.31)以及更强的 ROC-AUC 得分,这意味着模型的置信度得到了提高。
ROC 曲线图的比较证实了这一改进。

ROC 曲线表明,与单个模型输出(顶部)相比,在采用模型堆叠(底部)之后,模型具有更大的置信度。
        可悲的是,模型堆叠会导致可解释性的丧失。最初的单一模型实验说明,犯罪的月份和位置是预测犯罪类型的两个最重要的特征,但是堆叠输出只是将决策树输出归为最重要的特征。这表明就性能而言,模型堆叠是解决此问题的合适解决方案,但是通过更改 Auto_ViML 测试的属性来获得多个视角仍然有用。
london_imp
Auto_ViML 的默认特征重要性图表,不包含 SHAP。
        AutoML 不仅可以即时创建快速,准确的模型,而且如果库提供适当的详细输出,那么可以收集到大量的见解,可以加快理解问题的过程。Auto_ViML 的可解释性是其主要优势之一。这与使用深度神经网络的当前趋势形成鲜明对比。辛西娅·鲁丁(Cynthia Rudin,2019)惊叹道:“人们一直认为,准确度和可解释性之间总是要取舍,这一信念导致许多研究人员放弃了试图产生可解释模型的尝试。现在研究人员已经接受了深度学习方面的培训,而没有可解释的机器学习方面的培训,这使问题更加复杂。更糟糕的是,机器学习算法的工具包几乎无法为可解释的机器学习方法提供有用的接口。
        AutoML 可以将数据科学家指向针对指定数据管道的正确模型和正则化工具。自动化过程能够滤除可能误导模型的特征,并实时确定多项式特征变换的有效性。通常,数据科学家的先验偏见会扭曲建模过程的结果,并有可能导致数据从业者陷入困境。因此,将数据集放入 AutoML 管道中以获取对问题的完全公正的见解是非常宝贵的。
        尽管数据科学家可能最终仍会尝试手动调整和评估自己的模型,但是 AutoML 仍然是收集问题的初步见解并获得特征和目标变量关系的客观观点所必不可少的工具。目前,许多数据科学家仍在犹豫是否使用 AutoML 工具,但是在可预见的将来看到这些资产被纳入探索性数据分析或初始模型实验中也就不足为奇了。最好认可通过快速黑盒解决方案重新引入可解密机器学习模型范例的 AutoML 流程。这些 AutoML 工具可以有效地等同于在团队中拥有另一位数据科学家:一个已经拥有强大洞察力和针对手头问题的独特解决方案的数据科学家。
        您可以在此处[2]访问 Auto_ViML 的 github 存储库。
        特别感谢 Ram Seshadri 对 Auto_ViML 数据实验的支持和指导。
参考书目
C.Rudin,停止解释用于高额赌注决策的黑匣子机器学习模型,而改用可解释的模型,arXiv:1811/10154 [cs,stat],2019 年 9 月。
参考资料
[1]
在这里: https://github.com/DanRothDataScience/autoviml_test/blob/master/AutoVIML_test.ipynb[2]
此处: https://github.com/AutoViML/Auto_ViML
到顶部