R代码(RStudio)在我的笔记本电脑上无法工作,而在另一台笔记本电脑上工作

时间:2015-06-02 09:23:44

标签: r rstudio

我正在应用预测建模(渐变增强机器),我的笔记本电脑上的代码有错误,但大学计算机却没有。

我认为错误出现在第203行,列车

错误:

Error in train.default(training_data[, predictorsNames], training_data[,  : 
  final tuning parameters could not be determined
In addition: Warning messages:
1: In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,  :
  There were missing values in resampled performance measures.
2: In train.default(training_data[, predictorsNames], training_data[,  :
  missing values found in aggregated results

    # TRAINING & CROSSVALIDATION SETS

    filtered_processed_dataset$IsDelayed<-ifelse(filtered_processed_dataset$IsDelayed==1,'yes','nope')
    filtered_processed_dataset$IsDelayed<-as.factor(filtered_processed_dataset$IsDelayed)
    outcomeName<-'IsDelayed'
    predictorsNames<-names(filtered_processed_dataset)[names(filtered_processed_dataset)!=outcomeName]

    inTrain<-caret::createDataPartition(filtered_processed_dataset$IsDelayed,p=.85,list=FALSE)
    training_data<-filtered_processed_dataset[inTrain,]
    crossvalidation_data<-filtered_processed_dataset[-inTrain,]

    # GRADIENT BOOSTING MACHINE 

    getModelInfo()$gbm$type

    rownames(training_data)<-NULL
    gbmGrid<-expand.grid(interaction.depth=c(1,5,9), n.trees=100, shrinkage=0.1)

    fitControl<-trainControl(
      method='cv',
      number=3,
      returnResamp='none',
      verbose=FALSE,
      summaryFunction=twoClassSummary,
      classProbs=TRUE)

   **g<-train(training_data[,predictorsNames], training_data[,outcomeName],
     method='gbm',
     trControl=fitControl,
     metric="ROC",
     tuneGrid=gbmGrid)**

   crossvalidation_data<-as.data.frame(crossvalidation_data)
   rownames(crossvalidation_data)<-NULL

   p_gbm<-predict(g, crossvalidation_data[,predictorsNames], type='prob')

   auc<-pROC::roc(ifelse(crossvalidation_data[,outcomeName]=="yes",1,0),p_gbm[[2]])

   print(auc)

非常感谢。

1 个答案:

答案 0 :(得分:1)

在两台计算机上使用sessionInfo(),以获取有关已加载的程序包和R配置的信息。正如您希望代码为deterministic,有两种可能的结果:

  1. 您的配置不同,一个版本或 R 更旧/更新或使用不同的库。这会影响代码的执行方式。
  2. 您的数据集有所不同。您可以轻松排除它,例如查看包compare
    • 可能值得一提的是,之前的工作(您可能已经完成)没有在 R 环境中留下任何其他对象,请使用ls进行检查并使用{{清除1}} (小心,该命令将删除所有对象)
  3. 作为一个侧面,您可以考虑查看packrat。 Packrat将使您能够在不同环境中保持与您使用的软件包的一致性。

相关问题