相关疑难解决方法(0)

如何在R的randomForest中使用classwt?

我有一个高度不平衡的数据集,目标类实例的比例如下(编辑:) 60000:1000:1000:1000 60000:1000:1000:50(即总共4个类).我想用它randomForest来预测目标类.

因此,为了减少类不平衡,我使用sampsize参数,将其设置为(编辑:) 和其他一些值,但没有太多使用它.实际上,虽然其他级别预测的改进非常微小,但是在我玩的时候,第一类的准确性有所下降.c(5000, 1000, 1000, 50) sampsizerandomForest()

虽然挖通过档案,我遇到的两个特点strata,这是classwtclasswt那些用于胶印级的不平衡问题.

所有文件classwt都是旧的(通常属于2007年,2008年),所有文件都建议不要使用包的randomForest功能,因为它没有完全实现其完整的功能.所以,第一个问题是:现在完全在实施的R包?如果是,传递参数的是什么?(假设目标变量中有4个类的上述情况)Rfortranclasswt
randomForestc(1, 10, 10, 10)classwtsampsize

据说抵消类不平衡问题的另一个论点是分层抽样,它总是与之结合使用sampsize.我理解strata文档中的内容,但是没有足够的文档或示例可以清楚地了解strata用于克服类不平衡问题.所以,第二个问题是:
什么类型的参数都将被传递给randomForest60000:1000:1000:50?它代表什么?

我想在问题中没有明确提到的单词权重应该在答案中起主要作用.

r random-forest

25
推荐指数
1
解决办法
2万
查看次数

随机森林的类非常不平衡

我在一个大数据问题中使用随机森林,它有一个非常不平衡的响应类,所以我阅读了文档,我发现了以下参数:

strata 

sampsize
Run Code Online (Sandbox Code Playgroud)

这些参数的文档很少(或者我没有运气找到它),我真的不明白如何实现它.我使用以下代码:

randomForest(x=predictors, 
             y=response, 
             data=train.data, 
             mtry=lista.params[1], 
             ntree=lista.params[2], 
             na.action=na.omit, 
             nodesize=lista.params[3], 
             maxnodes=lista.params[4],
             sampsize=c(250000,2000), 
             do.trace=100, 
             importance=TRUE)
Run Code Online (Sandbox Code Playgroud)

响应是一个具有两个可能值的类,第一个出现的频率高于第二个(10000:1或更高)

list.params是一个包含不同参数的列表(呃!我知道......)

好吧,问题(再次)是:我如何使用'strata'参数?我正确使用sampsize?

最后,有时我会收到以下错误:

Error in randomForest.default(x = predictors, y = response, data = train.data,  :
  Still have fewer than two classes in the in-bag sample after 10 attempts.
Run Code Online (Sandbox Code Playgroud)

对不起如果我做了很多(也许是愚蠢的)问题......

r random-forest

18
推荐指数
1
解决办法
3万
查看次数

标签 统计

r ×2

random-forest ×2