R-具有两个结果变量的RandomForest

临时调制

randomForest在这里使用统计软件包还很陌生

我正在尝试运行具有2个响应变量和7个预测变量的模型,但由于响应变量的长度和/或使模型具有2个响应变量的性质,我似乎无法这样做。

假设这是我的数据和模型:

> table(data$y1)
 0  1  2  3  4 
23 43 75 47 21 

> length(data$y1)
0  4

> table(data$y2)
  0   2   3   4 
104  30  46  29

> length(data$y2)
0  4 

m1<-randomForest(cbind(y1,y2)~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)

当我运行此模型时,会出现以下错误:

Error in randomForest.default(m, y, ...) : 
  length of response must be the same as predictors

我进行了一些故障排除,发现这cbind()两个响应变量只是将它们的值放在一起,从而使原始长度加倍,并可能导致上述错误。举个例子,

length(cbind(y1,y2))
> 418
t(lapply(data, length()))
>  a   b   c   d   e   f   g   y1   y2
 209 209 209 209 209 209 209  209  209

然后,我尝试通过randomForest分别在每个响应变量上运行,然后将其应用于combine()回归模型来解决此问题,但遇到了以下问题:

m2<-randomForest(y1~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)
m3<-randomForest(y2~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)
combine(m2,m3)

Warning message:
In randomForest.default(m, y, ...) :
The response has five or fewer unique values.  Are you sure you want to do regression?

然后,我决定将randomForest模型视为分类模型,并as.factor()在运行之前将其应用于两个响应变量randomForest,但随后遇到了这个新问题:

m4<-randomForest(as.factor(y1)~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)
m5<-randomForest(as.factor(y2)~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)
combine(m4,m5)

Error in rf$votes + ifelse(is.na(rflist[[i]]$votes), 0, rflist[[i]]$votes) : 
  non-conformable arrays

我的猜测是我无法combine()对模型进行分类。

我希望我的尝试运行多元随机森林模型的询问有意义。让我知道是否还有其他问题。我也可以回去进行调整。

扎恰德

在randomForest公式之外合并您的列:

data[["y3"]] <- paste0(data$y1, data$y2)
randomForest(y3~a+b+c+d+e+f+g, data, mtry=7, importance=TRUE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:具有两个变量的子集

R-如何合并两个不同时期具有相同变量的两个表?

R中具有相同变量的两个不同x轴的图

使用 R 中的 Plotly 包绘制具有两个名义变量的散点图

R:具有两个变量和联系的秩函数。方法随机

在R中生成具有选定关联度的两个类别变量

如何在r中的两个变量中保持具有相同值的行?

r-筛选数据框中的所有变量,以获取至少两个具有相同值的变量

R Shiny:具有两个控件的eventReactive

R:合并两个具有相同列名的列表

具有两个向量的R着色数据帧

具有两个参数if语句的R函数

在 R 中删除具有两个条件的行

使用两个循环来循环两个变量,以生成R中具有不同数据和工作表名称的Excel文件

如何在R中的组中的两个变量的组合上选择具有特定值的行

如何使用 GA 包在 R 中优化具有两个变量和多个参数的函数

用两个现有变量在R中创建一个新变量

如何在 R 中减去两个 DATES 变量,结果应该以天为单位

R:在两个变量上滚动

R将两个变量相加

R将两个变量相加

R 循环中的两个变量

R:来自具有两个条件的元素向量的所有长度的所有组合

如何在r中具有两个向量的两个列表上运行循环?

如何在R数据框中聚合具有两个不同功能的两个不同列

是否有 R 函数可以从前两个相邻值中获取结果?

有没有办法将两个在R中互换的变量分组

如何在 R 中合并具有不同长度和两个条件的两个数据帧?

R:将变量级别分为两个变量