AsiaLee 2019-03-25
在数据的世界中,机器学习已经成为不可或缺的工具。机器学习可以帮助发现隐藏在大量数据中的特定知识。很多时候,这些知识都不是人类能轻易分析得出的,它展示了大量事实之间的内部联系。但是如果我们需要这些隐藏知识辅助做决策,机器学习建模就成为了一个非常有效的手段。
机器学习虽然十分强大,但它的模型开发应用过程却相对复杂,包括很多步骤,从数据质量检测,数据前期探索,特征工程,算法选择,模型训练,参数优化,模型结果分析,模型选择,模型运营,一直到模型再优化。这些流程中每一步和每一个关键点做出的决策对于模型在实际应用中的表现都至关重要,所以找到最佳模型通常是一个不断试错的过程。
以现在的人工方式实现这个过程是非常繁琐和缓慢的,所以在很多时候因为资源时间的限制往往不能找到最佳的模型。如果我们能把整个建模及运营流程高度自动化及优化,利用计算机的强大算力和高质的优化搜寻算法,自动快速的找到优质的模型,那么我们就可以把大部分时间用来快速解决业务问题,而不是机器学习问题了,这也正是 R2 Learn 平台所提供的功能。
在这篇文章中,我们将介绍如何使用 R2 Learn 快速构建机器学习模型,比较它与 XGBoost 建模的优劣。
重要的是,R2 Learn 目前提供免费试用,支持上限为 50MB 的 CSV 训练数据量、两万行数据预测,足够你体验自动机器学习的魅力。不想写代码,不想学数学,但又想拥有精准机器学习模型?R2 Learn 可以让您亲身体验简单便捷、高质高效的数据科学建模。
申请地址:https://www.r2ai.com.cn/product
什么是 R2 Learn
成立于 2015 年的 R2.ai 一直聚焦于自动化机器学习,其总部位于美国硅谷,上海和杭州都有分公司。R2 Learn 是 R2.ai 构建的 AutoML 平台,它旨在自动化及优化机器学习工作流,从而完成更简单,更快速,更高质量的数据分析。
R2 Learn 是真正端到端的自动化机器学习解决方案,能够提供一站式服务,完成从数据清洗到模型搭建所有步骤。只要对业务数据有一定理解,你就能通过 R2 Learn 迅速建立机器学习模型,解决业务需求。该平台通过自动算法集成与模型调参,整个建模过程由机器全程处理,实现了建模过程的自动化、规范化、可视化。
无论是数据科学家还是不具备 AI 专业知识的业务人员,R2 Learn 都可以在短时间内让你实现机器学习建模。它的优势主要在于便捷快速与准确优质。若与常规的 XGBoost 建模对比,我们发现 R2 Learn 完全不需要代码,数据预处理、模型搭建、训练、调参和部署等过程能自动完成,而且准确率还非常高。R2 Learn 的引导性可视化用户界面大大提高了建模的便捷性,即使是业务人员,跟着界面提示就能完成大数据分析,都不一定需要看文档或教程。此外,界面操作对 ML 开发者也很方便,可以充分发挥开发者的业务知识来辅助 R2 Learn, 例如在处理数据缺失值时,可以选择均值、中值和最值等更符合实际的方式进行补充,而完全不需要代码。
其次对于模型质量,R2 Learn 有一系列自动化的模型选择与相应的超参搜索优化算法,可以用较少的计算资源快速选择性能最好的模型作为推荐。在我们使用 XGBoost 手动建模和 R2 Learn 平台建模后发现,R2 Learn 的模型结果更加优异。
整体建模流程
一般的机器学习建模过程包含多个步骤,数据科学家首先要对数据进行清洗,其次通过一些统计分析理解数据及变量间的关系,进行特征工程,然后才能开始建模和训练等等。在我们的体验中,R2 Learn 整体过程只需用户上传数据,其余步骤包括数据预处理、自动建模,得到分析结果,部署和监控模型均由 R2 Learn 完成,是真正端到端的全程自动机器学习。这大大减少了缺乏机器学习知识用户的操作难度。
R2 Learn 机器学习工作流。步骤 1-3 由用户完成,4-6 由 R2 Learn 自动完成
在使用 R2 Learn 的过程中,首先收集我们的数据,它可能是业务数据,也可能是从网上爬取的一些信息。一般而言,我们可以将这些结构化数据转换为 csv 文件放在本地或者数据库上,并由用户上传至 R2 Learn。至此为止,用户负责的步骤 1-3 便完成了。
第 4 步为建立模型。当用户上传数据到 R2 Learn 平台后,R2 Learn 便会检查和清理数据,并且会以数据科学的角度给出最好的推荐,例如推荐使用最常见的类别作为缺失类别的补充。第 4 步可分为自动化建模和高级建模,其中自动化建模会全程完成从数据清洗、自动调参、选择最优算法、搭建模型、模型评估、模型推荐的所有步骤,是真正的「一键式」建模。高级建模则为有数据科学背景和建模经验的用户提供手动调整建模过程中的不同处理方式,例如用户可以选择用不同方式处理缺失数据,选用不同的热门机器学习算法训练模型,分析变量的统计信息等。用户可以重写覆盖系统决策,还能根据统计信息构建新变量。
当用户完成模型训练并且选择了合适的模型后,第 5 步为部署模型。我们可以连接 R2 Learn 与已有的数据库,或通过上传 CSV 文件用模型对要预测的数据进行批量预测,用户也可以选择使用 R2 Learn 模型运营 API 进行实时预测。
最后第 6 步可以监控模型的预测性能。一旦根据模型得出的预测结果不理想,R2 Learn 会自动提醒用户重新进行模型训练以达到理想的预测结果。
案例分析及使用体验
为了实际感受 R2 Learn 的效果,并了解它到底和主流机器学习库相比有什么优势,我们使用 R2.ai 关于类型二糖尿病预测案例,分别进行 R2 Learn 自动化建模和 XGBoost 手动建模。
R2 Learn 数据怎么做
因为糖尿病数据集是 CSV 文件,我们直接将训练集上传到 R2 Learn 即可。如下所示为 R2 Learn 中的数据概览,有点类似于 Pandas 中的 DataFrame.head,不过我们可以通过可视化操作选择要预测的目标变量与可用的特征变量,非常方便。对于分类任务,特征变量可以分为类别型和数值型,R2 Learn 可以自动检测变量类型,用户也可以根据需求自定义修改类型,这又会节省很多精力。
确定无误后,R2 Learn 会自动分析目标变量与特征变量,并给出质量修复方案。如下图所示为 R2 Learn 对数据预处理的概览。
因为 R2 Learn 能够自动检测变量类型,并对缺失值、异常值等提供处理方案,它比常规用 Pandas 预处理数据简单很多,我们不需要写代码就能完成整个流程,这就是它的便捷性。
此外,获取变量的相关性、重要性等信息,或创建新变量等高级操作都可以在 Advanced 建模模式中实现,这就是它的灵活性。
R2 Learn 建模怎么做
处理完数据后就可以开始建模了,R2 Learn 提供两种模式:全自动建模和高级建模,全自动建模不需要用户做任何操作,只要等待模型训练完成即可。这里简单介绍下高级建模(Advanced)模式,除了前面所述获取变量的统计信息外,更重要的是能够查看自定义模型设置和参数。
对于分类和回归问题,R2 Learn 支持不同的算法。除了平台提供的默认解决方案外,我们还可以根据具体需求选择主流机器学习算法,因此它兼顾了性能与便捷。如下图所示为高级建模的各种选项,我们额外选了随机森林和 XGBoost 两种算法,之后 R2 Learn 会进行自动建模、调参,推荐所选模型中结果最好的几个。
除了模型选择,设置中还包括了有很多其它参数,例如数据集分割比例 [Set Percentage of Each Part]、不平衡数据的重采样 [Resampling Setting]、最大模型集成数 [Set Model Ensemble Size] 等等。其中比较便捷的是重采样与模型集成:如果分类类别分布差别太大,我们可以选择自动上采样或下采样;可以通过设置模型集成数量 [Set Model Ensemble Size] 选择用来做集成模型的模型数量上限。
在随后的建模训练中,平台默认推荐两种 R2-solution 算法,不但模型训练速度非常快,并且一般能得到的模型具有较高的准确率,这也是全自动建模所采用的方式。当用户选择高级模型并且勾选了其他多种算法,模型训练时长也会相应增加,尽管如此,百万行数据需要的建模时间依然能在一小时左右完成,这是人工根本无法比拟的。
在所有已训练模型中,R2 Learn 会根据执行速度、模型性能、验证集模型与流出集的差异等因素来综合进行模型推荐。我们也可以对每一个已训练模型查看各种可视化特征,例如 ROC 曲线、预测分布、不同变量对预测的重要性等等。
如下所示为简化版的模型效果图。我们可以看到各模型的性能与执行速度,同时还能计算模型每个变量的重要性。其中绿色和紫色分别表示各类别分类正确的比例,黄色表示分类错误的比例。
R2 Learn 会计算各个特征对模型贡献大小,如上模型,认为「gap」和「dm_duration」两个特征贡献最大,这也为实际业务分析提供帮助,业务人员可以根据特征贡献大小,有的放矢地进行分析处理。
如上图所示,通过运用 R2 Learn 建立的糖尿病者预测模型,AUC 可达到 0.877,能够准确识别出超出 HbA1C 控制的高风险患者,为临床健康风险管理提供了重要支持;分析团队在收集到相关数据后,能够在 1-2 小时内迅速构建出模型并完成预测;整个过程仅需要一名数据分析师即可完成整个建模预测工作,不需要任何外部顾问,从而节约了大量成本。
在实际应用中,R2 Learn 不仅在医疗、还有包括金融、新零售、物流、制造等众多领域的中都有很好的表现。
R2 Learn 部署怎么用
最后的部署就比较简单了,确定最合适的训练模型,然后选择部署就行了。一般 R2 Learn 可以通过数据源或 API 进行模型部署,其中数据源又可分为本地 CSV 文件或数据库。
对比 XGBoost
最后,如果我们需要使用 XGBoost 库执行相同的任务,那么就需要按照标准的机器学习建模流程一点点完成。在适应了 R2 Learn 后,相对比而言这个过程越发显得繁琐,尤其是对大数据的预处理和调参等。如下为准备好数据后,执行模型训练的代码样例:
模型结果:
以上模型结果为尝试不同上述超参数后建立 XGBoost 模型得到的结果,可见超参数的选择直接影响建模效果。要得到较好的模型通常需要根据建模者的经验进行多次调试,是一个相当消耗时间和精力的工作。
R2 Learn 端到端的全流程自动建模方式,使整个流程变得非常简单、便捷、高效,没看说明书的情况下,用户即可在几分钟以内建立并部署模型,无论你是否拥有 AI 专业知识;而使用 XGBoost 建模则需要从头写或修改开源代码,哪怕是资深的数据科学家,也需要数小时的时间来完成整个工作。
而对于建模效果,R2 Learn 的模型 AUC 可达到 0.877;而利用 XGBoost 进行建模,多次调试后最佳效果也仅有 0.862。R2 Learn 在建模过程中,利用强大算力做支撑,拥有更多模型算法、变量处理方式作为选择,从而能够建立出具有更高质量的模型。
为了让用户能亲身体验 R2 Learn 产品,R2.ai 公司近期在其网站 https://www.r2ai.com.cn/product 推出产品公开免费试用。
同时,为满足不同用户需求,提供不同使用级别的个人版线上订阅版本。云平台产品更进一步节省了企业运用人工智能进行机器学习建模所需的设备投资,使有需求的企业能立即开始应用领先的 AutoML 技术进行大数据分析和预测。对企业级用户,R2.ai 提供企业级 SaaS 和本地部署产品。
如果你也想试试 R2 Learn 这种更便捷更高效的全程自动机器学习方式,快快申请试用吧。