在本博客中,我将从第1部分继续介绍如何在Rstudio中构建机器学习模型,并直接在SAP HANA中执行,而无需将数据移出HANA。在这一部分中,我还将举例说明如何将机器学习模型引入生产就绪环境。
我将演示如何在不将培训数据移动到R客户端的情况下,从RStudio或SAP HANA上您首选的R GUI构建机器学习模型。此方法允许使用SAP HANA进行快速交互式机器学习培训和部署。
内容:
机器学习用例。评估机器学习模型。使用SAP HANA
1将模型部署到生产中。SAP HANA机器学习–所有直接从R执行的交互
本博客中介绍的用例是一个相当简单的数据集。我选择了这个数据集,这样您就可以在您自己的环境中重新执行我显示的步骤。数据科学的挑战是一个经典的监督二进制分类。我们的目标是建立一个机器学习模型来识别2型糖尿病患者怀孕:怀孕次数葡萄糖:口服葡萄糖耐量试验中2小时的葡萄糖血浆葡萄糖浓度血压:血压血压(mm Hg)三头肌:皮肤厚度三头肌皮褶厚度(mm)胰岛素:胰岛素2小时血清(μU/ml)体重:BMI体重指数(体重单位kg/(身高单位m)^2)谱系:糖尿病谱系功能年龄:以年为单位的年龄糖尿病:结果类变量(0或1)。768个中的268个是1,其余的是0.
2。创建和评估机器学习模型。
在这个博客中,我主要关注机器学习模型的评估和部署。在以后的博客文章中,大数据是什么,我将展示如何准备机器学习模型中的数据。数据准备步骤对于挤出训练数据中所有可能的信息,大数据现状,从而获得性能良好的模型至关重要。
从头开始创建机器学习模型并将模型保存到SAP HANA。
模型现在已经构建并保存–这可以在SAP HANA Studio中验证:
如上所示,什么是大数据云计算,该模型现在存储为PMML格式(预测标记模型语言)。
评估机器学习模型
接收器工作特性(ROC)曲线用于评估预测2类结果的连续测量的准确性(双变量分类)。在市场营销、销售、医学等领域,ROC曲线用于评估机器学习模型的可用性已有很长的历史。在坚果壳中,ROC曲线有助于确定构建机器学习模型是否比随机选择提供更好的结果,但是它也有助于确定真阳性和假阴性的最佳阈值。这在用例中是非常有价值的,例如,与客户联系会产生成本。下面是保险用例的ROC曲线。选择大约20%(x轴)的最有可能的客户产生大约50%的总客户有兴趣购买额外的保险。
生成上述ROC曲线和计算曲线下面积(AUC)所需的代码。这里最重要的是hanaml.Auc公司PAL算法,计算AUC得分并创建一个具有ROC值的表。
该表hanaml.Auc公司函数构建已经准备好可视化,因为它包含假阳性和真阳性的预计算点。
简单的R代码需要图表(创建同一图表的3种不同方法):
对训练和测试数据的机器学习模型进行评分:
分类机器学习模型的混淆矩阵。
而使用hanaml.mission.matrix文件我将在下面的函数中显示更多综合说明法。
使用插入符号混淆矩阵函数:
构建更全面的混淆矩阵。我在StackOverflow上找到了一些代码片段(https://stackoverflow.com/questions/23891140/r-how-to-visualize-conflusion-matrix-using-the-caret-package/42940553)为了满足我的需要,我对它进行了改进和改变。我将在我的GitHub中发布代码(参见下面的链接)。
(我的函数的屏幕截图,它创建了一个摘要混淆矩阵和选定的KPI–值来自另一个模型)。功能在我的github上可用。
3。使用SAP HANA将模型部署到生产环境
将ML模型从SAP HANA加载回R环境。实际上,您并没有将模型加载到本地R环境中—只是关于模型的元数据。
在撰写本博客时,有必要进行一个小的预处理步骤,以便R认识到从SAP HANA加载的模型是一个ML模型。如下图所示,我实际上训练了一个模型,但是只有一些记录。这一步显然非常快,因为训练行很小,而且如上所述,只需要允许在下一步覆盖保存的模型。
模型大小只有2行:
加载存储在SAP HANA中的模型。如下图所示,模型大小现在是401行,与实际的PMML模型相对应。
将模型应用于新数据–预测结果并将结果存储在SAP HANA中:
在SAP HANA Studio中,我们现在有一个包含所有预测和预测置信度的新表。
调度模型。
有多种方式安排重新训练或应用新数据的机器学习模型。我选择了一种简单的方法来使用Windows任务调度器,它内置于Windows 10中。
在任务调度器中创建新任务。
监视计划的作业。下面我展示了在新的患者数据中预测糖尿病的计划任务。作业将在我选择的时间间隔内无人运行。
如果您愿意,实际上有一个R包为您进行任务调度。
包"taskscheduleR"允许GUI和脚本方法。
对于脚本方法,这里是一个管理计划的示例。
如果您使用的是RStudio taskscheduleR,则可以实际上是作为一个插件嵌入如下:
我希望你喜欢我展示如何构建的博客文章,评估机器学习模型并将其部署到生产计划状态,购物返现,创建新的预测并将结果存储在SAP HANA表中。