y - ymean 中的错误:二元运算符 randomForest R 的非数字参数

Posted

技术标签:

【中文标题】y - ymean 中的错误:二元运算符 randomForest R 的非数字参数【英文标题】:Error in y - ymean : non-numeric argument to binary operator randomForest R 【发布时间】:2017-01-12 05:21:29 【问题描述】:

我有一个大约 37k x 1024 的矩阵,由 1 和 0 作为分类变量组成,用于指示特征向量的存在或不存在。我通过 R 中的 randomForest 包运行了这个矩阵,如下所示:

rfr <- randomForest(X_train,Y_train)

其中 X_train 是包含分类变量的矩阵,Y__train 是由矩阵中每一行的标签组成的向量。当我运行它时,我收到以下错误:

Error in y - ymean : non-numeric argument to binary operator
In addition: Warning message:
In mean.default(y) : argument is not numeric or logical: returning NA

我检查了任何空值或丢失的数据,但没有找到。

我什至把整个东西做成了一个data.frame并尝试了以下

rfr <- randomForest(labels ~ ., data = featureDF)

仍然有同样的错误。

如果有任何帮助,我将不胜感激,谢谢!

【问题讨论】:

【参考方案1】:

我猜labels 是一个字符变量,但randomForest 期望分类结果变量是因素。将其更改为一个因子,看看错误是否消失:

featureDF$labels = factor(featureDF$labels) 

randomForest 的帮助没有明确说明响应需要成为一个因素,但它是暗示的:

y  A response vector. If a factor, classification is assumed, otherwise   
   regression is assumed. If omitted, randomForest will run in unsupervised mode.

您还没有提供示例数据,所以这里有一个内置 iris 数据的示例:

Species 是原始数据框中的一个因素。让我们将Species 转换为字符:

iris$Species = as.character(iris$Species)
rf <- randomForest(Species ~ ., data=iris)
Error in y - ymean : non-numeric argument to binary operator

Species 转换回因子后,randomForest 运行没有错误。

iris$Species = factor(iris$Species)
rf <- randomForest(Species ~ ., data=iris)

【讨论】:

以上是关于y - ymean 中的错误:二元运算符 randomForest R 的非数字参数的主要内容,如果未能解决你的问题,请参考以下文章

R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator

出现错误:二元运算符“==”不能应用于两个“x”操作数,如何删除此对象数组中的某些元素

补作业:随机生成二元四则运算

条件二元运算符错误

Julia - 数学运算

二元运算符返回 Xvalue 而不是 PRvalue?