classProbs = TRUE时,插入符号的结果不同

时间:2015-04-21 08:35:07

标签: r r-caret

当我训练模型时,一个使用classProbs = TRUE而另一个没有计算概率,我会得到不同的结果:

library(caret)

set.seed(7)
myControl <- trainControl(method='cv',number=3,savePredictions=TRUE)
set.seed(7)
model <- train(Species~., iris, tuneLength=4,method='svmRadial', trControl=myControl)

set.seed(7)
myControl <- trainControl(method='cv',number=3,savePredictions=TRUE,classProbs=TRUE)
set.seed(7)
modelProbs <- train(Species~., iris, tuneLength=4, method='svmRadial', trControl=myControl)

classProbs = FALSE(var model)的模型是:

C     Accuracy   Kappa      Accuracy SD  Kappa SD  
0.25  0.9266667  0.8900100  0.03055050   0.04584410
0.50  0.9333333  0.8999840  0.02309401   0.03469643
1.00  0.9400000  0.9099880  0.02000000   0.03004800
2.00  0.9400000  0.9100059  0.02000000   0.02999416

classProbs = TRUE(var modelProb)的模型是:

C     Accuracy   Kappa     Accuracy SD  Kappa SD  
0.25  0.9266667  0.890010  0.03055050   0.04584410
0.50  0.9333333  0.899984  0.02309401   0.03469643
1.00  0.9400000  0.909988  0.02000000   0.03004800
2.00  0.9466667  0.919980  0.02309401   0.03466529
参数选择后,即使在最终模型中也会产生

(当classProbs = FALSE时,C = 1,当classProbs = TRUE时,C = 2)。

我发现两个模型的所有预测都是相同的,除了分类器不能确定要预测哪个类的那些模型。例如:

> model$pred[423,]
          pred        obs rowIndex     sigma    C Resample
423 versicolor versicolor       69 0.8071298 0.25    Fold3

> modelProbs$pred[423,]
         pred        obs     setosa versicolor virginica rowIndex        sigma    C Resample
423 virginica versicolor 0.03307154  0.4813102 0.4856182       69 0.8071298 0.25    Fold3

在这个实验中,差异非常小,但我尝试过更复杂的数据,差异很大。任何人都可以解释classProbs属性如何影响预测吗?我认为它用于查看每个班级的概率,但它并没有改变结果。

0 个答案:

没有答案