r 语言roc_在SAP HANA上使用R语言进行机器学习(2)

72376cd8f1de803dde55abef704d84c1.png

编者按:随着越来越多的SAP工程师加入开源大家庭,曾经“高大上”的机器学习的门槛也在逐渐降低,早尝试早享受,机器学习的结果也将会成为支持决策的重要因素,成为未来企业IT必备的能力。“胶水能力”可以让企业的数字化化插上翅膀,在Leonardo中发现更多可能性...

本文将接着上篇文章继续介绍如何在Rstudio上构建机器学习模型,并将模型运行在SAP HANA上。

《在SAP HANA上使用R语言进行机器学习》

同样在本文中,我将举例说明如何将机器学习模型引入到正式的生产环境中。

我将展示如何在RStudio或SAP HANA的R GUI上构建机器学习模型。此方法在SAP HANA上能够进行快速交互式的机器学习训练和部署。

内容:

机器学习用例。

评估机器学习模型。

使用SAP HANA将模型部署到生产环境中

1. 使用SAP HANA进行机器学习 - 使用R语言执行所有交互

本文中提供的用例是一个相当简单的数据集。使用这个简单的数据集,您也可以在自己的本地环境上重现我的操作步骤。这个算法案例是一个经典的监督二元分类。我们的目标是建立一个机器学习模型,以识别2型糖尿病患者。

数据描述:

怀孕:怀孕次数

葡萄糖:口服葡萄糖耐量试验2小时的葡萄球菌葡萄糖浓度

压力:血压心血管舒张压(mm Hg)

三头肌:三头肌皮褶厚度(mm)

胰岛素:胰岛素2小时血清(μU / ml)

质量:BMIBody质量指数(体重kg /(身高m)^ 2)

家族谱系:糖尿病家族谱系功能

年龄:年龄

糖尿病:是否糖尿病(0否,1是)。768项中满足268项是1,否则是0。

f6a70012f26f19d1deafba7afe2454dc.png

2. 创建和评估机器学习模型

本文的重点是机器学习模型的评估和部署。在以后的文章中,我将展示如何为机器学习模型准备数据。数据准备这一步骤对于归类出训练数据中的所有可能信息,从而获得性能良好的模型至关重要。

从头开始创建机器学习模型并将模型保存到SAP HANA。

b74de85bf79c4daef55efc513b26dbd8.png

该模型现已构建并保存 - 可在在SAP HANA Studio中进行验证:

0f790edde0283dfed6fc5fb7be195441.png

如上所示,该模型现在存储为PMML格式(预测标记模型语言)。

评估机器学习模型

接收者运行特征(ROC)曲线用于评估预测2类结果(双变量分类)的连续测量的准确性。在市场营销,销售,医学等领域,ROC曲线在评估机器学习模型的可用性方面有着悠久的历史。简而言之,ROC曲线有助于识别构建机器学习模型是否比随机选择更好,也可以帮助识别True和False的最优阈值。这在一些使用案例中很有用处,例如,客户的沟通成本。以下是保险用例的ROC曲线。大约20%(x轴)的意向客户中会有50%有兴趣购买附加保险。

86543f5367fd3b742f10a87cc3f8d8ce.png

下图是生成上述ROC曲线并计算曲线下面积(AUC)所需的代码。这里的重点是hanaml.Auc PAL算法,它计算AUC得分并用ROC值创建了一张表。

d5c1b091c2d17288ade5d77468ac7ce1.png

hanaml.Auc函数构建的ROC表已经具备可视化,因为它包含了能判断True和False的参数。

900c6c5118f3206b08169c83aa61d7a1.png

图表所需的简单R代码(创建相同图表的3种不同方式):

adb8cf83cbe49df25fcdf1daeb278ca0.png

在训练和测试数据上评估机器学习模型:

2bb97b8b61e7d1a19fdc2a1cdfcb1dcd.png

用于分类机器学习模型的混淆矩阵

a0252045045e26c7e4edafde2b8ce56b.png

虽然使用hanaml.Confusion.matrix函数创建混淆矩阵相当简单,但我将在下面展示一个更全面和更具说明性的方法。

使用着名的Caret(分类和回归训练)包来构建混淆矩阵和相关的KPI指标。

构建更全面的混淆矩阵。

使用Caret包的confusionMatrix函数:

bb7c8ade36baed920b47f1c9d528ae9f.png

构建更全面的混淆矩阵。我在StackOverflow上找到了一些代码片段,我按照自己的需求对其做了修改和优化。代码发布在我的GitHub上(参见文末的链接)。

https://stackoverflow.com/questions/23891140/r-how-to-visualize-confusion-matrix-using-the-caret-package/42940553

482e8c67c2c043a7662a603e0578ca28.png

(上图是函数的屏幕截图,该函数创建了一个摘要混淆矩阵和选定的KPI - 值来自另一个模型)。代码发布在我的github上。

3. 使用SAP HANA将模型部署到生产环境中

将ML模型从SAP HANA加载回R环境。实际上并未将模型加载到本地R环境中 - 只是加载了模型的元数据。

在撰写此文时,我先做了一个准备步骤,目的是让R能够识别从SAP HANA加载的模型是ML模型。如下所示,我实际上使用很少的记录训练了一个模型。由于训练记录很少,这一步骤很快,并且如上所述只需要在下一步中覆盖掉保存的模型即可。

模型的记录只有2行:

c05e832e2f4ccc7ed2bd1639b5b3e396.png

加载存储在SAP HANA中的模型。如下所示,模型的记录现在是401行,与实际的PMML模型相对应。

0dc4d6f65981dbb550469c5dc25181d2.png

将模型应用于新数据 - 预测结果并将结果存储在SAP HANA中:

fd4058b65dc6f469267dcc8c98c221d4.png

在SAP HANA Studio中,我们现在有了一个新表,其中包含所有预测和该预测的置信度。

1550c1f9361d9c7a0ad3388acfb5c53a.png

调度执行模型。

有多种方法可以调度执行重新训练模型或给模型输入新数据。我选择使用内置于Window 10的任务计划程序来实现。

1ab90338730c7114d441f7337e6aaf1a.png

在任务计划程序中创建新任务。

指向R安装的位置,然后选择R.exe。

在“Add arguments”项上输入“R脚本的位置”。

5aa87f02e2f0abfa600ba31a9072b7cc.png

监听计划任务。下图我展示了我的计划任务—在新患者数据中预测糖尿病患者。此任务会在我设定的时间范围内自动运行。

0f54dfd034a182ee8fcaabbb9e1d6d88.png

实际上R也提供了一个包为您执行任务调度。

0e8db11fb3ceba6fb734237b1884a920.png

“taskscheduleR”包允许使用GUI界面和脚本。

下面是一个使用脚本管理调度的例子。

4395d7629ff5b0b3f5e2a98945eef8d9.png

如果您使用的是RStudio taskscheduleR,那就可以作为Addin嵌入,如下所示:

81d33f77f75e0699a0d9033639736517.png

希望您能够喜欢这篇文章,这篇文章介绍了如何构建,评估和部署机器学习模型,并将模型引入到生产环境,并调度执行模型。

我后面可能会把重点放在数据准备工作上,从我的经验上来看,从历史训练数据中分类出信息至关重要,这能帮助最终构建出更好的机器学习模型。

参考链接:

Github - 此文中使用的脚本和数据源。

https://github.com/kurtholst/HANA_R_ML

在SAP HANA上使用R语言进行机器学习(1)

https://blogs.sap.com/2019/04/09/machine-learning-with-sap-hana-from-r/?preview_id=801758

使用R进行任务调度作业.

https://cran.r-project.org/web/packages/taskscheduleR/vignettes/taskscheduleR.html

SAP HANA PAL文档 -

https://help.sap.com/viewer/2cfbc5cf2bc14f028cfbe2a2bba60a50/2.0.03/en-US/c9eeed704f3f4ec39441434db8a874ad.html

Pima Indians数据集。

https://www.kaggle.com/uciml/pima-indians-diabetes-database

原文链接:https://blogs.sap.com/2019/06/07/machine-learning-with-sap-hana-with-r-api.-part-2./

原文作者:Kurt Holst

- End -

往期精选 | Editors' Choice

SAP将推出专门面向中国市场定制的云ERP?

IBP或许能唤醒沉睡在SAP中几十年S&OP

如何“打劫”SAP、ORACLE们的客户资源?

SAP Fiori 3.0将改变您使用SAP的方式

顾问职场"塑料五件套"表情包使用指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值