随机森林模型错误(如果(n == 0)停止中的错误(“数据(x)有0行”))
Posted
技术标签:
【中文标题】随机森林模型错误(如果(n == 0)停止中的错误(“数据(x)有0行”))【英文标题】:Random forests model error (Error in if (n == 0) stop("data (x) has 0 rows")) 【发布时间】:2016-11-28 10:06:39 【问题描述】:我已经很好地建立了我的随机森林模型,请看代码
modelRF <- randomForest(x=p$NDVI,
y=p$BushCategories,
ntree=500, do.trace=TRUE,
importance=TRUE, forest=TRUE, na.action=na.omit)
然后它给出了下面的错误
Error in if (n == 0) stop("data (x) has 0 rows") :
argument is of length zero
在下面查看我的数据结构
'data.frame': 197 obs. of 5 variables:
$ Waypoint_No : chr "OMATSC028" "OMATSC200" "OMATSC072N" "OMATSC317" ...
$ Longitude : num 17.7 17.6 17.8 17.9 17.9 ...
$ Latitude : num -21.2 -21.2 -21.1 -20.9 -21.1 ...
$ NDVI : num 0.256 0.327 0.25 0.268 0.283 ...
$ BushCategories: Factor w/ 4 levels "0-25%","26-50%",..: 3 1 2 3 2 3 1 2 1
1 ...
可能是什么问题?
这是我的数据集的样例
x<-c('0.256', '0.327', '0.25', '0.268')
y<-c('0-25%','26-50%','51-75%','76-100%')
data<-data.frame(x,y)
【问题讨论】:
na.action=na.omit
?你可能在每一行都有 NA 吗?见***.com/questions/8370455/…
没有 NA,我已经删除了 NA 功能,但仍然出现该错误。
请提供reproducible data 这样我们就会得到同样的错误。
@zx8754 我已经用示例数据更新了问题。
【参考方案1】:
您的公式(randomForest 的第一个输入)是错误的。您必须在公式中指定类类型和训练数据,以便算法知道要训练什么。
在您的情况下,我假设您正在尝试从 BushCategories 预测 NDVI。所以你应该使用的公式是 NDVI ~ BushCategories。第二个元素是训练数据。所以,只要解决这个问题,它应该对你有用。
【讨论】:
以上是关于随机森林模型错误(如果(n == 0)停止中的错误(“数据(x)有0行”))的主要内容,如果未能解决你的问题,请参考以下文章