问题描述
我正在使用 sql Server 机器学习服务来运行 R 模型。我可以使用 RevoScaleR 和 rxSerializeModel 对其进行序列化,但我想使用插入符号而不是 RevoScaleR 这里是我的代码,当要求序列化经过训练的模型时出现错误
Step1 使用 SP 训练模型
DROP PROCEDURE IF EXISTS generate_PCL_R_native_model;
go
CREATE PROCEDURE generate_PCL_R_native_model (@model_type varchar(30),@trained_model varbinary(max) OUTPUT)
AS
BEGIN
EXECUTE sp_execute_external_script
@language = N'R' -- Spesify langauge and R code,@script = N'
require("RevoScaleR")
require("caret")
require("ranger")
library(caret)
library(ranger)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = TRUE,classprobs = T,verboseIter = F
)
rf_grid <- expand.grid(mtry = 2,splitrule = c("gini","extratrees"),min.node.size = c(1,3,5));
if(model_type == "dtree") {
model_linmod <-
train(pclitemspct10r_new ~
+ d1
+ d2
+ d3
+ d4
+ d5
+ d6
+ d7
+ e1
+ e2
+ e3
+ e4
+ e5
+ e6
+ marriedd1
+ marriedd2,data = PCL_train_data,method = "ranger",trControl = fitControl,#tuneGrid = rf_grid
)
#serialize the model
trained_model <- as.raw(serialize((model_linmod,NULL));
}
',@input_data_1 = N'select * from [dbo].[training_IOP_data_new]',@input_data_1_name = N'PCL_train_data';
第 2 步 - 设置用于存储模型的模型表
DROP TABLE IF EXISTS PCL_models;
GO
CREATE TABLE PCL_models (
model_name VARCHAR(30) NOT NULL DEFAULT('default model'),lang VARCHAR(30),model VARBINARY(MAX),native_model VARBINARY(MAX),PRIMARY KEY (model_name,lang)
);
GO
步骤 3 以表格格式保存模型
DECLARE @model2 VARBINARY(MAX);
EXEC generate_PCL_R_native_model "dtree",@model2 OUTPUT;
INSERT INTO PCL_models (model_name,native_model,lang) VALUES('dtree_model',@model2,'R');
有什么方法可以序列化使用插入符号或其他一些库而不是 RevoScaleR 训练的 R 模型。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)