R caret没有在训练中使用所有行

时间:2014-11-14 02:18:20

标签: r random-forest r-caret

我正在尝试使用R中的插入符号包构建一个随机森林模型。训练数据有287个样本和147个变量,测试分区是119 x 147.这是我的代码的一部分

##Split into training and validation samples
inTrain <- createDataPartition(y=all_subj_summ$out, p=0.7, list=FALSE)
training <- all_subj_summ[inTrain,]
testing <- all_subj_summ[-inTrain,]

#fit a model using RandomForest using all variables
set.seed(123)
tc <- trainControl(method="cv")
mod <- train(out ~ ., method="rf", data=training, prox=TRUE, trControl=tc)
preds <- predict(mod,testing)
table(preds, testing$out)
confusionMatrix(testing$out, preds)

然而,当我尝试打印表格或混淆矩阵时,我收到错误

> confusionMatrix(testing$out, preds)
Error in table(data, reference, dnn = dnn, ...) : 
  all arguments must have the same length

事实证明,应用于测试分区时的模型仅预测64个值,而不是测试集中的所有119行。当我检查射频模型时,我也看到并非所有287个样本(来自训练集)都被使用。我知道在引导期间,我们使用相同数量的样本(替换)...请参阅下面模型的输出

> mod
Random Forest 

287 samples
146 predictors
  5 classes: 'A1', 'A2', 'A3', 'A4', 'NaN' 

No pre-processing
Resampling: Cross-Validated (10 fold) 

Summary of sample sizes: 139, 137, 137, 138, 138, 138, ... 

Resampling results across tuning parameters:

  mtry  Accuracy  Kappa  Accuracy SD  Kappa SD
    2   0.763     0.691  0.0917       0.123   
   74   0.763     0.693  0.0913       0.123   
  146   0.750     0.678  0.0910       0.122   

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was mtry = 74. 

有人可以说明为什么rf仅使用130多个样本来构建模型,其次在应用于预测结果时,为什么只预测了64个例子?谢谢!

0 个答案:

没有答案