Прогнозиране на модел Randomforest

Приложих произволна гора и след това започнах да прогнозирам индекс на листната площ в гора, използвайки 10 променливи. Но когато прогнозирам спирания, резултатът от прогнозата е празна карта с нулеви стойности. Оценявам, ако някой ми помогне с това. Добавям тук кода, който изпълнявам.

Тук, в първата стъпка, присвоявам нула на стойностите на NA в растерите.

tex37$glcm_variance_ENVI[is.na(tex37$glcm_variance_ENVI)] <- 0
tex37$glcm_entropy[is.na(tex37$glcm_entropy)] <- 0
RVI_raster3$glcm_mean_ENVI[is.na(RVI_raster3$glcm_mean_ENVI)] <- 0
RVI_raster3$glcm_mean[is.na(RVI_raster3$glcm_mean)] <- 0
RVI_raster3$glcm_variance[is.na(RVI_raster3$glcm_variance)] <- 0
RVI_raster5$glcm_mean_ENVI[is.na(RVI_raster5$glcm_mean_ENVI)] <- 0
RVI_raster5$glcm_variance[is.na(RVI_raster5$glcm_variance)] <- 0
RVI_raster5$glcm_mean[is.na(RVI_raster5$glcm_mean)] <- 0
RVI_raster7$glcm_mean_ENVI[is.na(RVI_raster7$glcm_mean_ENVI)] <- 0
RVIrededge[is.na(RVIrededge)] <- 0

Тук подреждам всичките си 10 растерни слоя в един растер.

image_stack_imp = stack(tex37$glcm_variance_ENVI,
                     tex37$glcm_entropy,
                     RVI_raster3$glcm_mean_ENVI,
                     RVI_raster3$glcm_mean,
                     RVI_raster3$glcm_variance,
                     RVI_raster5$glcm_mean_ENVI,
                     RVI_raster5$glcm_variance,
                     RVI_raster5$glcm_mean,
                     RVI_raster7$glcm_mean_ENVI,
                     RVIrededge)

Направих таблица от моята функция, плюс индекс на листовата площ като етикет.

Table_Importance = data.frame(LAI=d$LAI,
                          tex37.glcm_variance_ENVI=LAI37$glcm_variance_ENVI,
                          tex37.glcm_entropy=LAI37$glcm_entropy,
                          RVI_raster3.glcm_mean_ENVI=RVI3$glcm_mean_ENVI,
                          RVI_raster3.glcm_variance=RVI3$glcm_variance,
                          RVI_raster3.glcm_mean=RVI3$glcm_mean,
                          RVI_raster5.glcm_variance=RVI5$glcm_variance,
                          RVI_raster5.glcm_mean_ENVI=RVI5$glcm_mean_ENVI,
                          RVI_raster5.glcm_mean=RVI5$glcm_mean,
                          RVI_raster7.glcm_mean_ENVI=RVI7$glcm_mean_ENVI,
                          RVIrededge_values)

И накрая стартиране на Randomforest:

set.seed(104)
ind <- sample(2, nrow(Table_Importance), replace = 1, prob=c(0.66,0.33))
rf_imp<- randomForest(LAI ~ ., data=Table_Importance[ind ==     1,],importance=TRUE, ntree=1000, mtry=3)
pred_imp <- predict(rf_imp, Table_Importance[ind == 2,])
rmse(Table_Importance[ind==2, "LAI"], pred_imp)
###############################predicting########################
Map_LAI = predict(image_stack_imp, rf_imp,na.rm = TRUE, progress='window', type ='response')
plot(Map_LAI)

Ето малката извадка:

(head(Table_Importance, 20)

person S.amn    schedule 05.01.2016    source източник
comment
Можете ли да предоставите (малък) възпроизводим пример?   -  person Roman Luštrik    schedule 05.01.2016
comment
За съжаление съм нов в stackoverflow и не знам как точно мога да направя това? защото за всяка променлива има различни команди, чието изпълнение отнема време. коя част от кода е по-добре да се качи тук?   -  person S.amn    schedule 05.01.2016
comment
dput(head(Table_Importance, 20)) ще ни даде първите 20 реда от вашата Table_Importance. Това е, което отива в Случайната гора. Но първо проверете дали не получавате никакви грешки от функцията за прогнозиране и дали данните в Table_Importance са това, което очаквате да бъдат. Без NA, само нули и т.н.   -  person phiver    schedule 05.01.2016
comment
Проверих за стойностите на NA, таблицата няма нищо от тях. Грешката на функцията за прогнозиране се дължи на стойностите на NA в моето изображение и аз ги заменям с нула, както показах преди. Добавих пробата от моята маса.   -  person S.amn    schedule 05.01.2016


Отговори (1)


Сам открих проблема, :D отговорът е само, че името на атрибутите на таблицата трябва да е същото като името на таблицата за обучение. В моя случай имената на атрибутите са както следва:

Table_Importance = data.frame(LAI=d$LAI,
                          glcm_variance_ENVI=LAI37$glcm_variance_ENVI,
                          glcm_entropy=LAI37$glcm_entropy,
                          glcm_mean_ENVI.1=RVI3$glcm_mean_ENVI,
                          glcm_variance.1=RVI3$glcm_variance,
                          glcm_mean.1=RVI3$glcm_mean,
                          glcm_variance.2=RVI5$glcm_variance,
                          glcm_mean_ENVI.2=RVI5$glcm_mean_ENVI,
                          glcm_mean.2=RVI5$glcm_mean,
                          glcm_mean_ENVI.3=RVI7$glcm_mean_ENVI,
                          layer=RVIrededge_values)
person S.amn    schedule 05.01.2016