scr*_*Owl 12 r na random-forest
我正在尝试在大型数据集(5000x300)上运行randomForest.不幸的是我收到如下错误信息:
> RF <- randomForest(prePrior1, postPrior1[,6]
+ ,,do.trace=TRUE,importance=TRUE,ntree=100,,forest=TRUE)
Error in randomForest.default(prePrior1, postPrior1[, 6], , do.trace = TRUE, :
NA/NaN/Inf in foreign function call (arg 1)
Run Code Online (Sandbox Code Playgroud)
所以我尝试找到任何NA使用:
> df2 <- prePrior1[is.na(prePrior1)]
> df2
character(0)
> df2 <- postPrior1[is.na(postPrior1[,6])]
> df2
numeric(0)
Run Code Online (Sandbox Code Playgroud)
这让我相信它是Inf的问题,因为似乎没有任何NA.
有关如何根除Inf的任何建议?
jor*_*ran 22
您可能正在寻找is.finite,但我并不是100%确定输入数据中的问题是Infs.
请务必is.finite仔细阅读帮助,了解它所挑选的缺失,无限等组合.具体来说,这个:
> is.finite(c(1,NA,-Inf,NaN))
[1] TRUE FALSE FALSE FALSE
> is.infinite(c(1,NA,-Inf,NaN))
[1] FALSE FALSE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
其中一件事与其他事情不同.毫不奇怪,还有一个is.nan功能.
smc*_*mci 10
randomForest的'外国函数调用中的NA/NaN/Inf'通常是一个错误警告,真的很烦人:
快速而肮脏的技巧缩小范围,在变量列表上进行二进制搜索,并使用令牌参数,例如ntree=2在变量子集上获得即时通过/失败:
RF <- randomForest(prePrior1[m:n],ntree=2,...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16869 次 |
| 最近记录: |