我是SAP World的新手,我正在尝试使用SAP HANA Studio中安装的R Server(HANA Studio版本:2.3.8和R Server 3.4.0版本)
我的任务是:
- 在HANA Studio中的R Server上训练randomForest模型(借助HANA上的RLANG过程)
- 将randomForest模型保存为HANA中的PAL模型对象
- 使用该模型对HANA中的新数据进行预测
下面是一个RLANG过程的小例子,用于在HANA上训练和保存模型:
PROCEDURE "PA"."RF_TRAIN" (
IN data "PA"."IRIS",
OUT modelOut "PA"."TRAIN_MODEL"
)
LANGUAGE RLANG
SQL SECURITY INVOKER
DEFAULT SCHEMA "PA"
AS
BEGIN
require(randomForest)
require(dplyr)
require(pmml)
# iris <- as.data.frame(data)
data(iris)
iris <- iris %>% mutate(y = factor(ifelse(Species == "setosa", 1, 0)))
model <- randomForest(y~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, iris,
importance = TRUE,
ntree = 500)
modelOut <- as.data.frame(pmml(model))
END;
(请不要混淆,我没有使用我的输入数据进行模型训练,这不是一真实的例子)
下面是SAP HANA上模型的表的外观:
在这个例子中,训练是有效的,但我不知道如何将随机森林对象保存在SAP HANA数据库中,或者如何将随机森林对象转换为图片中的类似对象。
会很感激任何帮助:)
1条答案
按热度按时间qni6mghb1#
如果您计划使用R服务器进行预测,则可以将随机Forest模型存储为SAP HANA中的
BLOB
对象。在SAP HANA R Integration Guide之后,您需要。
1.在表
"PA"."TRAIN_MODEL
中包含BLOB
属性。1.在将模型写入表之前,使用函数
serialize
将其存储为二进制。1.调用predict过程时加载并
Unserialize
模型。在你的R脚本中。
请注意,如果您计划按原样重用模型,那么实际上并不需要使用
pmml
。在另一个过程中,您将需要调用此表并取消序列化模型以进行预测。