我是R的新手,我正努力创造我的第一个模特。我正在进行一个2级随机森林项目,到目前为止,我已经按照以下方式对模型进行了编程:
library(randomForest)
set.seed(2015)
randomforest <- randomForest(as.factor(goodkit) ~ ., data=training1, importance=TRUE,ntree=2000)
varImpPlot(randomforest)
prediction <- predict(randomforest, test,type='prob')
print(prediction)
我不确定为什么我没有得到我的模型的整体预测。我必须在我的代码中遗漏一些东西。我在测试集中获得了每个案例的OOB和预测,但没有得到模型的整体预测。
library(pROC)
auc <-roc(test$goodkit,prediction)
print(auc)
这根本不起作用。
我已阅读过pROC手册,但我无法理解所有内容。如果任何人都可以帮助代码或发布链接到一个好的实际样本,那将是非常有帮助的。
答案 0 :(得分:1)
Using the ROCR
package, the following code should work for calculating the AUC:
library(ROCR)
predictedROC <- prediction(prediction[,2], as.factor(test$goodkit))
as.numeric(performance(predictedROC, "auc")@y.values))
答案 1 :(得分:0)
您的问题是predict
对象randomForest
上的type='prob'
会返回两个预测:每列包含属于每个类的概率(用于二进制预测)。
您必须决定使用哪些预测来构建ROC曲线。幸运的是,对于二进制分类,它们是相同的(只是相反):
auc1 <-roc(test$goodkit, prediction[,1])
print(auc1)
auc2 <-roc(test$goodkit, prediction[,2])
print(auc2)