在R中运行Caret软件包时出现错误

问题描述 投票:4回答:2

[我正在尝试建立模型来预测产品将在电子商务网站上以输出1还是0出售。

我的数据是少数类别变量,一个类别变量很多,一对二进制,一个连续变量(价格),输出变量为1或0(无论产品清单是否出售)。 >

这是我的代码:

inTrainingset<-createDataPartition(C$Sale, p=.75, list=FALSE)
CTrain<-C[inTrainingset,]
CTest<-C[-inTrainingset,]


gbmfit<-gbm(Sale~., data=C,distribution="bernoulli",n.trees=5,interaction.depth=7,shrinkage=      .01,)
plot(gbmfit)


gbmTune<-train(Sale~.,data=CTrain, method="gbm")


ctrl<-trainControl(method="repeatedcv",repeats=5)
gbmTune<-train(Sale~.,data=CTrain, 
           method="gbm", 
           verbose=FALSE, 
           trControl=ctrl)


ctrl<-trainControl(method="repeatedcv", repeats=5, classProbs=TRUE, summaryFunction =    twoClassSummary)
gbmTune<-trainControl(Sale~., data=CTrain, 
                  method="gbm", 
                  metric="ROC", 
                  verbose=FALSE , 
                  trControl=ctrl)



  grid<-expand.grid(.interaction.depth=seq(1,7, by=2), .n.trees=seq(100,300, by=50),  .shrinkage=c(.01,.1))

  gbmTune<-train(Sale~., data=CTrain, 
           method="gbm", 
           metric="ROC", 
           tunegrid= grid, 
           verebose=FALSE,
           trControl=ctrl)



  set.seed(1)
  gbmTune <- train(Sale~., data = CTrain,
               method = "gbm",
               metric = "ROC",
               tuneGrid = grid,
               verbose = FALSE,
               trControl = ctrl)

我遇到两个问题。首先是当我尝试添加summaryFunction = twoClasssummary,然后进行调整时,得到以下信息:

Error in trainControl(Sale ~ ., data = CTrain, method = "gbm", metric = "ROC",  : 
  unused arguments (data = CTrain, metric = "ROC", trControl = ctrl)

如果我决定绕过summaryFunction,第二个问题是当我尝试运行模型时出现此错误:

Error in evalSummaryFunction(y, wts = weights, ctrl = trControl, lev = classLevels,  : 
  train()'s use of ROC codes requires class probabilities. See the classProbs option of trainControl()
In addition: Warning message:
In train.default(x, y, weights = w, ...) :
  cannnot compute class probabilities for regression

在excel中,我尝试将输出变量从1或0的数字值更改为仅文本值,但这没什么区别。

在解决将模型解释为回归模型或我遇到的第一个错误消息这一事实方面,将提供任何帮助,我们将不胜感激。

最佳,

[email protected]

我正在尝试建立模型以预测产品将在电子商务网站上以输出1还是0进行销售。我的数据是少数类别变量,一个类别变量很大...

r r-caret
2个回答
4
投票

您的结果是:


2
投票

我能够使用data(GermanCredit)数据集重现您的错误。

© www.soinside.com 2019 - 2024. All rights reserved.