randomForest包的类中心函数中的NAs
我试图使用randomForest包的类中心函数中的NAs,r,random-forest,na,R,Random Forest,Na,我试图使用R编程语言版本2.13.1的randomForest包版本4.6-7检索两类分类问题的类原型。为此,我调用classCenter函数。问题是,它有时会输出一个无效的结果,即,一个或两个返回的类原型完全由NA值组成。发生这种情况时,我会在R控制台中获得以下信息: There were 50 or more warnings (use warnings() to see the first 50) library(randomForest) mydata <- read.csv("
R
编程语言版本2.13.1的randomForest
包版本4.6-7检索两类分类问题的类原型。为此,我调用classCenter
函数。问题是,它有时会输出一个无效的结果,即,一个或两个返回的类原型完全由NA
值组成。发生这种情况时,我会在R控制台中获得以下信息:
There were 50 or more warnings (use warnings() to see the first 50)
library(randomForest)
mydata <- read.csv("mydata.csv", header=TRUE)
myrf <- randomForest(x=mydata[,-1:-2], y=mydata[,1], ntree=1000, mtry=33, importance=TRUE, proximity=TRUE)
mycc <- classCenter(mydata[,-1:-2], mydata[,1], myrf$prox)
print(mycc)
键入warnings()
可显示以下50次:
1: In mean.default(sort(x, partial = half + 0L:1L)[half + ... :
argument is not numeric or logical: returning NA
重要提示:我注意到,对于在相同数据和使用相同设置的情况下学习的不同随机林模型,该函数会给出不同的输出,即,对于一个模型,它可能会返回两个类原型,但对于另一个模型,则不会返回任何类原型。这意味着至少有时我会得到有效的结果
我在R控制台中使用以下代码:
There were 50 or more warnings (use warnings() to see the first 50)
library(randomForest)
mydata <- read.csv("mydata.csv", header=TRUE)
myrf <- randomForest(x=mydata[,-1:-2], y=mydata[,1], ntree=1000, mtry=33, importance=TRUE, proximity=TRUE)
mycc <- classCenter(mydata[,-1:-2], mydata[,1], myrf$prox)
print(mycc)
库(随机林)
mydata我也面临同样的问题,今天就把它处理掉了。
你可以做两件事
(1) 请删除具有空值或NA值的列,或
(2) 删除具有空值或NA值的行或
(3) 将所有列中的空值或NA值替换为适当的处理方法,如平均值、中值或模式值(如果可行)。谢谢您能否提供所用数据的子集,用于重现错误?否则很难诊断。summary(mydata)
的输出也很方便,因为我想这就是问题所在。编辑:您可以找到summary(mydata)
和mydata[1:10,]
的输出(您可能希望在文本编辑器中查看文件,而不使用换行符,因为文本格式很宽)。当然,前10行不足以重现错误,但我不允许发布整个数据集。对于某些模型,如何可能有一个由NAs组成的类原型,而对于其他模型,如何可能没有NAs?如何确定我的某些值是否不是数字或逻辑值mydata[!complete.cases(mydata),]
为空。数据看起来不错,我只是想再次检查。一个长远的想法是,可能有一些奇怪的属性或结构隐藏在您的数据帧中,把事情搞砸了。尝试将其转换为数字矩阵,以删除除原始数字和维度以外的所有内容。mydata[!complete.cases(mydata),]
为空,即输入数据中没有缺失(NA)值。