Сериализовать модель R с использованием библиотеки каретки и сохранить в таблице в SQL Server с помощью служб машинного обучения?
Я использую службы машинного обучения 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');
Есть ли способ сериализовать модель R, которая обучена с использованием каретки или некоторых других библиотек вместо RevoScaleR.