所有物种分布建模文献都表明,在使用输出概率的模型(例如,RandomForests)预测物种的存在/不存在时,选择阈值概率以将物种实际分类为存在或不存在是很重要的,人们应该并不总是依赖默认值 0.5。我需要一些帮助!这是我的代码:
library(randomForest)
library(PresenceAbsence)
#build model
RFfit <- randomForest(Y ~ x1 + x2 + x3 + x4 + x5, data=mydata, mytry = 2, ntrees=500)
#eventually I will apply this to (predict for) new data but for first I predict back to training data to compare observed vs. predicted
RFpred <- predict(RFfit, mydata, type = "prob")
#put the observed vs. predicted in the same dataframe
ObsPred <- data.frame(cbind(mydata), Predicted=RFpred)
#create auc.roc plot
auc.roc.plot(ObsPred, threshold = 10, xlab="1-Specificity (false positives)",
ylab="Sensitivity (true positives)", main="ROC plot", color=TRUE,
find.auc=TRUE, opt.thresholds=TRUE, opt.methods=9)
据此,我确定我想用于根据预测概率对存在进行分类的阈值是 0.7,而不是默认值 0.5。我不完全明白如何处理这些信息。在创建输出映射时我是否只使用此阈值?我可以轻松地创建具有连续概率的映射输出,然后简单地将值大于 0.7 的值重新分类为存在,而将 <0.7 的值重新分类为不存在。
或者,我是否想获取此信息并使用截止参数重新运行我的 randomForests 建模?截止参数到底在做什么?它会改变结果投票吗?(目前说是“多数”)。如何使用此截止参数?我看不懂文档!谢谢!