R中的分类概率

我试图通过随机森林来预测蘑菇是否可食用或有毒。我的准确度约为99.5%。是否可以说: 如果您不确定/不可能预测出错误(并杀死某人),则将蘑菇归类为有毒蘑菇,以确保没有人会吃掉他。 我是一个初学者,不知道在哪里可以找到可以解决我问题的任何东西。

yt131415 回答:R中的分类概率

是的。 randomForest函数内置了允许进行此类决策的功能。您只需要输出每个答案的概率而不是分类即可。需要一些设置。 Mushroom数据在cba包中可用,但是许多名称不能与R一起使用。在这里,我更改名称。此外,还有一些缺失值。我只使用完整的案例来简化插图。

library(cba)            ## For Mushroom data
data(Mushroom)

## Fix variable names
names(Mushroom) = gsub("-",".",names(Mushroom))
names(Mushroom) = gsub("\\?","",names(Mushroom))

## Use only complete cases
MR = Mushroom[complete.cases(Mushroom),]

现在,我们可以建立randomForest模型

MushRF  = randomForest(class~.,data=MR)

并获得预测可食用的树木比例

PredMRF = predict(MushRF,type="prob")

有些食物被食用的几率远高于50%,但并不像您想的那么确定。

PredMRF[37,]
    edible  poisonous 
0.96354167 0.03645833

sum((PredMRF[,1] > 0.5) & (PredMRF[,1] < 0.99))     ## 173
sum((PredMRF[,1] > 0.995) & (PredMRF[,1] < 1.0))    ## 3

获取至少99%的树木同意的点

SafeBet = ifelse(PredMRF[,1] > 0.99,1,0)
本文链接:https://www.f2er.com/3072196.html

大家都在问