- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 10,000 行和两列的数据框、段(具有 32 个值的因子)和目标(具有两个值"is"和“否”的因子,每个值 5,000 个)。我正在尝试使用随机森林来使用分段作为特征对目标进行分类。
训练随机森林分类器后:
> forest <- randomForest(target ~ segment, data)
混淆矩阵强烈偏向“否”:
> print(forest$confusion)
no yes class.error
no 4872 76 0.01535974
yes 5033 19 0.99623911
在 10,000 行中,不到 100 行被分类为"is"(即使原始计数为 50/50)。如果我切换标签的名称,我会得到相反的结果:
> data$target <- as.factor(ifelse(data$target == 'yes', 'no', 'yes'))
> forest <- randomForest(target ~ segment, data = data)
> print(forest$confusion)
no yes class.error
no 4915 137 0.02711797
yes 4810 138 0.97210994
所以这不是一个真正的信号...而且,原始的交叉表是相对平衡的:
> table(data$target, data$segment)
1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 24 25 26 27 28 29 3 30 31 32 4 5 6 7 8 9
no 1074 113 121 86 68 165 210 70 120 127 101 132 90 108 171 122 95 95 76 72 105 71 234 58 83 72 290 162 262 192 64 139
yes 1114 105 136 120 73 201 209 78 130 124 90 145 81 104 155 128 79 85 83 70 93 78 266 70 93 76 291 160 235 194 49 137
看起来 randomForest 采用第一个标签,并且几乎总是为其分配点。澄清一下,数据框是具有更多功能的更大表格的子集 - 我刚刚发现这个特定功能以某种方式导致了这个结果,无论包含多少其他功能。我想知道我是否遗漏了随机森林分类器的一些基本知识,或者是否存在一些编码问题或其他错误导致了这个奇怪的结果。
原始数据集可在此处作为 RDS 获取:
https://www.dropbox.com/s/rjq6lmvd78d6aot/weird_random_forest.RDS?dl=0
谢谢!
最佳答案
您的数据框架是平衡的,因为"is"和“否”总体上可能性相同。但是,segment
的值本质上不包含有关 target
值的信息,因为“yes”和“no”对于所有级别的 的可能性大致相同>segment
,因此没有理由期望随机森林或任何其他过程能够做出好的预测。
如果将segment
转换为数字,则randomForest
大约 65% 的时间预测为“yes”。大约 63% 的数据位于 segment
值中,其中"is"比“否”的可能性(稍微)大,因此这可以解释当 segment 时"is"预测的高比率
是数字。但无论segment
是数字还是因子,总体错误率都大致相同。我不确定为什么当 segment
是一个因素时,randomForest
几乎总是选择“否”。
关于r - randomForest R 包的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324066/
通过终端,您可以使用命令 - “SetFile -a B 文件名” 以编程方式,我认为我应该通过[[NSFileManager defaultManager] createDirectoryAtPat
嗨,正在尝试书中的一些示例:Practical Graph mining with R对于子图挖掘: library(subgraphMining) library(igraph) graph1 =
代码中的相同问题: class Foo { int getIntProperty () { ... } CustomObject getObjectProperty () { ... }
所以这可能是一个愚蠢的问题,但它已经困扰我一段时间了。 使用 React,我创建了两个组件(Buttons.js 和 Message.js),每个组件都有一个导出。但是,现在我希望将这两个组件用作 n
从今天早上开始,我发现我无法再从某个范围安装任何 NPM 包(或任何具有依赖项的包)。例如,如果我输入 npm i webpack 我会收到以下错误... npm ERR! code E401 npm
我在这里搜索过,Angular 2, @ngtools/webpack, AOT ,但对我不起作用。我运行了 npm install 命令。我正在做的是创建一个新的 Angular 2 项目。当我运行
情况: 我有一个 Swift 包,将其命名为 lib。 lib 位于其自己的存储库中。在lib的仓库中,有一堆本地包;也就是说,这些包是在 lib 中定义的,使用本地路径依赖格式 .package(p
我想在工作中学习和使用nodejs,但是在使用 de npm 命令安装模块/包时遇到网络问题。我是否可以使用我的家用计算机构建完整的 Node js 包,然后将其安装在另一台计算机(我的工作场所计算机
我需要将一些 .tar.bz2 格式的非 Python 包转换为 Anaconda/miniConda .egg 文件并安装它们。为此,我需要一个适用于 Windows 的 bld.bat 文件。互联
我需要共享库文件 libthrift-0.9.3.so 作为其他包的依赖项。我在构建 thrift-0.9.3 包时看到编译问题(我确实从 https://thrift.apache.org/down
我尝试在 R 版本 3.5.0 中安装“arcgisbinding”包。但是我失败了,得到以下错误和警告。 Installing package into ‘C:/Users/Lenovo/Docum
我尝试在 R 版本 3.5.0 中安装“arcgisbinding”包。但是我失败了,得到以下错误和警告。 Installing package into ‘C:/Users/Lenovo/Docum
我试图在 flutter 中测试这个应用程序,但我无法运行该应用程序,因为出现此错误“名称‘Page’在库‘package:burn_off/widgets/page.dart’和‘package’中
试图理解和学习如何编写包...用我一直使用的东西进行测试,记录... 您能帮我理解为什么“日志”变量不起作用...并且屏幕上没有日志记录吗? 谢谢! 主要文件: #!/opt/local/bin/py
我尝试运行此使用 Google 云的代码。 import signal import sys from google.cloud import language, exceptions # creat
我想知道是否有人找到了一个很好的 R 包来分析眼动追踪数据? 我遇到了 eyetrackR,但据我所知,没有可用的英文支持文档: http://read.psych.uni-potsdam.de/pm
我正在 R 上制作一个包。我有两个函数共享一个变量(全局)。 如何将其导入到包中? 例如, m<-0 f<-function() { m <- m+1 } g<-function() { m <- m
我用 C 为 Lua 编写了很多模块。每个模块都包含一个 Lua 用户数据类型,我像这样加载和使用它们: A = require("A") B = require("B") a = A.new(3,{
我正在尝试在 R 中的 Ubuntu 上安装 xlsx 包,以便使用允许在 R 中插入链接然后将它们导出到 Excel 的功能。 话虽如此,我根本无法安装该软件包。 显然它必须与 rJava 一起使用
我想在 Haskell 中做一些蒙特卡洛分析。我希望能够编写这样的代码: do n <- poisson lambda xs <- replicateM n $ normal mu sigma
我是一名优秀的程序员,十分优秀!