如何在R的randomForest中改变截断参数?

4

文档中提到截断值是“一个长度等于类别数的向量。对于一次观察,胜出的类别是投票比例与截断值的最大比率。默认值为1/k,其中k是类别数(即,多数投票获胜)。”

我想实现概率截断值为0.6或0.7而不是默认值0.5。

RFfit <- randomForest(Y ~ x1 + x2 + x3 + x4 + x5, data=mydata, mytry=2, ntrees=500,
  cutoff = x)

我尝试了各种x的值,包括0.6、6、12、1.2等等,但都没有奏效。我还在我的数据中添加了一个名为“cutoff”的列,其中所有值均为0.6,并尝试将其调用到代码中,但也没有成功。
您应该如何正确使用截止参数?

根据帮助页面,x的长度应该等于班级数量。如果你有两个班级,请尝试使用“cutoff = c(0.6, 0.6)”。这有帮助吗? - DrDom
尝试过了 - 没有用! - user3251223
cutoff = c(0.6, 0.4) 是你想要的。 - smci
2
顺便说一下,你错误拼写的参数 mytry=2 将被静默忽略。你想要的应该是 mtry=2。带有传递参数 (...) 的函数无法判断参数是否拼写错误,它们只会静默忽略它们。 - smci
1个回答

7
正确的格式是:
cutoff=c(k,1-k) 

k 可以是介于 0 和 1 之间的任何值。例如,

cutoff=(0.7,1-0.7)

或者

cutoff=(0.5,1-0.5)

1
“cutoff = c(0.7, 0.3)” 在随机森林中的意思是什么?如果有1000棵树,最多有700棵树预测为“1”,那么就会预测为“1”吗? - joel.wilson
@joel.wilson 我有完全相同的问题,尽管它不是针对原始问题的。查看此链接 https://gerardnico.com/data_mining/threshold 以获取更多信息。 - WANNISA RITMAHAN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接