我已经使用caret
软件包训练了一个随机森林来预测二进制分类任务。
library(caret)
set.seed(78)
inTrain <- createDataPartition(disambdata$Response, p=3/4, list = FALSE)
trainSet <- disambdata[inTrain,]
testSet <- disambdata[-inTrain,]
ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10)
grid_rf <- expand.grid(.mtry = c(3,5,7,9))
set.seed(78)
m_rf <- train(Response ~ ., data=trainSet,
method= "rf", metric = "Kappa", trcontrol=ctrl, tuneGrid = grid_rf)
该Response
变量包含值{ Valid
,Invalid
}。使用以下代码,我可以得出测试数据的类概率:
pred <- predict.train(m_rf, newdata = testSet,
type="prob", models=m_rf$finalModel)
不过我很感兴趣,获得预测类,即Valid
或Invalid
不是某个类的概率,以产生一个混淆矩阵。
我已经在函数type="raw"
中尝试过该参数,predict.train
但是它返回的列表NAs
。
似乎插入符号包(caret_6.0-70)的公式接口仍然存在问题。将公式从扩展Response ~ .
到明确提及所有此类预测变量的公式即可Response ~ MaxLikelihood + n1 + n2 + count
解决问题并predict.train(m_rf, newdata=testSet)
返回预测的类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句