2016-07-25 55 views
2

我建立了我的隨機森林模型非常好,看到代碼隨機森林模型錯誤(錯誤的,如果(N == 0)停止(「數據(x)具有0行」))

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)      
+0

'na.action = na.omit'?你有沒有每個行都有NAs的可能?請參閱http://stackoverflow.com/questions/8370455/how-to-build-random-forests-in-r-with-missing-na-values – zx8754

+0

沒有NAs,我已經刪除了NA功能,仍然得到那個錯誤。 – jmutua

+0

請提供[可重現的數據](http://stackoverflow.com/questions/5963269),所以我們得到相同的錯誤。 – zx8754

回答

0

公式(第一輸入隨機森林)是錯誤的樣本。您必須在公式中指定班級類型和訓練數據,以便算法知道要訓練什麼。

就你而言,我假設你正試圖從BushCategories預測NDVI。所以你應該使用的公式是NDVI〜BushCategories。第二個元素是訓練數據。所以,只要解決它,它應該爲你工作。