Сериализовать модель 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.

0 ответов

Другие вопросы по тегам