使用R预测SQL中的varchar值

时间:2018-12-18 01:42:11

标签: r sql-server machine-learning

我只是进入机器学习/ R领域,并第一次探索它的可能性。我试图在基于位的Varchar表中预测结果。表结构非常简单。它具有一个名为result的varchar列,以及其他三个确定结果的位。例如

ResultCode isPotato isFried isMashed
土豆泥1 0 1 炸薯条1 1 0 BakedPotato 1 0 0

DROP PROCEDURE IF EXISTS generate_potato_R_native_model;
go
CREATE PROCEDURE generate_potato_R_native_model (@model_type varchar(30), @trained_model varbinary(max) OUTPUT)
AS
BEGIN
    EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
require("RevoScaleR")

if(model_type == "dtree") {
    model_dtree<- rxDTree(ResultCode ~ isPotato + isFried + isMashed, data = TrainData);
    trained_model <- rxSerializeModel(model_dtree, realtimeScoringOnly = TRUE);
    }
'

    , @input_data_1 = N'select * from dbo.TrainData'
    , @input_data_1_name = N'TrainData'
    , @params = N'@trained_model varbinary(max) OUTPUT, @model_type varchar(30)'
    , @model_type = @model_type
    , @trained_model = @trained_model OUTPUT;
END;
GO

DECLARE @model2 VARBINARY(MAX);
EXEC generate_potato_R_native_model "logit", @model2 OUTPUT;
INSERT INTO potato_models (model_name, native_model, lang) VALUES('model_dtree', @model2, 'R');

想法是将位传递给存储过程,并返回预测的varchar。当前,当我执行存储过程并尝试序列化以下模型时,我将返回“对因素无意义”。

DECLARE @model2 VARBINARY(MAX);
EXEC generate_potato_R_native_model "logit", @model2 OUTPUT;
INSERT INTO potato_models (model_name, native_model, lang) VALUES('model_dtree', @model2, 'R');

我使用的是正确的模型吗?如果是,我应该如何解决此问题?

0 个答案:

没有答案