首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RF:一个等级的OOB精度高,另一个级别的精度很低,具有大的等级不平衡。

RF:一个等级的OOB精度高,另一个级别的精度很低,具有大的等级不平衡。
EN

Stack Overflow用户
提问于 2012-04-24 21:37:50
回答 6查看 9.2K关注 0票数 4

我是随机森林分类器的新手。我使用它来分类有两个类的数据集。-特征数目为512。-数据的比例为1:4,即75%的数据来自第一级,25%来自第二类。-我用了500棵树。

该分级机的袋外误差为21.52%。第一类(由75%的培训数据表示)的每类错误为0.0059。而第二类的分类错误确实很高: 0.965。

我正在寻找对这种行为的解释,如果你有建议,提高二等的准确性。

我期待着你的帮助。

谢谢

忘了说我在使用R,在上面的测试中我使用了1000的节点大小。

在这里,我只用10棵树和nodesize= 1重复了训练(只是为了给出一个想法),下面是R中的函数调用和混淆矩阵:

  • randomForest(公式=标签~,数据= chData30PixG12,ntree = 10,重要性=真,节点大小= 1,keep.forest = FALSE,do.trace = 50)
  • 随机森林类型:分类
  • 树数: 10
  • 不是的。在每次拆分时尝试的变量: 22
  • OOB误差率估计: 24.46%
  • 混淆矩阵:
  • 无关的,相关的,class.error
  • 不相关的37954,4510,0.1062076
  • 相关8775,3068,0.7409440
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-24 21:53:31

我同意@usr的观点,通常情况下,当您看到一个随机森林只是将(几乎)每个观察数据归类为多数类时,这意味着您的特性并没有提供很多信息来区分这两个类。

一种选择是运行随机森林,以便从少数类(而不是用从整个数据集替换的抽样)对观测数据进行过度采样。因此,您可以指定每一棵树都建立在N大小的样本上,其中强制N/2的观测来自每个类(或您选择的其他比率)。

虽然这可能会对一些人有所帮助,但这绝不是一种治愈办法。更有可能的是,通过找到更好的特性来区分类,而不是调整RF设置,您会获得更多的里程。

票数 10
EN

Stack Overflow用户

发布于 2014-01-23 13:49:55

我很惊讶没有人提到使用“classwt”参数。加权随机森林(WRF)是专门设计来解决这类问题的。

见此处:堆栈交换问题#1

在这里:堆栈交换问题2

关于加权随机森林的文章:PDF格式

票数 5
EN

Stack Overflow用户

发布于 2013-01-14 21:57:41

这就是典型的阶级失衡问题。随机林是一种分类器,目的是最大限度地提高模型的精度。当某一类数据占了大部分数据时,分类器最容易达到精度的方法是将所有的观测数据分类为多数类。这提供了一个非常高的精度为0.75在您的情况下,但一个糟糕的模型-几乎没有正确的分类少数群体。处理这个问题有很多种方法。最简单的方法是利用大多数类的欠采样来平衡数据,然后用这些均衡的数据来训练模型。希望这能帮到你。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10306380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档