是否有可能控制R包randomForest中错误分类的代价?
在我自己的工作中,误报(例如,由于一个人可能患有疾病而导致的错误失误)比误报的代价要高得多。软件包rpart允许用户通过指定损失矩阵来不同程度地加权错误分类,从而控制错误分类成本。是否有类似的东西存在randomForest
?例如,我是否应该使用该classwt
选项来控制Gini标准?
是否有可能控制R包randomForest中错误分类的代价?
在我自己的工作中,误报(例如,由于一个人可能患有疾病而导致的错误失误)比误报的代价要高得多。软件包rpart允许用户通过指定损失矩阵来不同程度地加权错误分类,从而控制错误分类成本。是否有类似的东西存在randomForest
?例如,我是否应该使用该classwt
选项来控制Gini标准?
Answers:
并非如此,如果不是通过手动制作RF克隆来制作rpart
模型袋的话。
一些选择来自以下事实:RF的输出实际上是连续得分而不是明确的决定,即在某个类别上投票的树木所占的比例。它可以predict(rf_model,type="prob")
用ROC曲线提取并用于制作,例如,ROC曲线将显示出比.5更好的阈值(以后可以将其合并到带有cutoff
参数的RF训练中)。
classwt
这种方法似乎也有效,但是在实践中效果不佳-无论属性如何,在平衡预测和同级无关紧要的转换之间的过渡都过于尖锐而无法使用。
一个可以将costMatrix
在randomForest
通过明确的parms
参数:
library(randomForest)
costMatrix <- matrix(c(0,10,1,0), nrow=2)
mod_rf <- randomForest(outcome ~ ., data = train, ntree = 1000, parms = list(loss=costMatrix))
classwt
:是的,我发现在实践中并与其他用户一致,结果与预期不符。(iii)cutoff
:我不清楚如何cutoff
在这种情况下使用,欢迎任何进一步的建议。