2 votos

Ejecución de la clasificación Random Forest en la imagen WorldViev-2 en R - problema

Tengo un problema al realizar la RF en R para una escena WorldView-2. Nunca antes he utilizado R para la clasificación de la teledetección, así que simplemente he seguido lo que está escrito aquí . He cargado la escena (TIFF de 8 bandas) con raster::brick y lo he llamado abcd, he cargado un shapefile simple de 4 puntos y 2 clases con OGR, he ejecutado el modelo randomForest y lo he llamado wv2rf y he intentado utilizar predict:

predict(abcd, wv2rf, "rftes.img", index=1, na.rm=TRUE)

R devolvió un error, que no puedo manejar con:

Error in `[.data.frame`(blockvals, , f[j]) : undefined columns selected

Supongo que tiene que ver con el valor del índice, pero he intentado cambiarlo y no ha funcionado

todo el código:

#loading data
abcd <- brick("13AUG20094646-M2AS-13EUSI-1283-01.tif")
sdata <- readOGR(dsn="mypath\\poligony testowe", layer="training")
v <- extract(x=abcd, y=sdata, df=TRUE)
sdata@data = data.frame(sdata@data, v[match(rownames(sdata@data), rownames(v)),]
sdata@data[3] <- NULL
#classification
wv2rf <- randomForest(x=sdata@data, y=(sdata@data[,"klasa"]), ntree=10, importance=TRUE)
predict(abcd, wv2rf, "rftes.img", index=1, na.rm=TRUE)

Aquí están los archivos con mis variables sdata, wv2rf y abcd, deberían funcionar con load("filename") en R. Espero que te sirvan para ayudarme.

http://speedy.sh/9f7cf/rf.zip

1voto

Dan Puntos 16

Está incluyendo su variable de respuesta en los datos de entrenamiento. Además de no ser un modelo válido, esta columna no está disponible en su ladrillo raster. Tus datos "x" necesitan ser indexados en el modelo rf para que excluya la respuesta.

Por ejemplo, si la primera columna es y ("klasa") y el resto son x:

wv2rf <- randomForest(x=sdata@data[,2:ncol(sdata@data)], 
                      y=as.factor(sdata@data[,"klasa"]), 
                      importance=TRUE)

Según su descripción, sólo tiene 4 observaciones para discriminar 2 clases. ¿Es esto correcto? Si es así, ¡es un modelo bastante inválido! Necesita muchas más observaciones para aplicar un modelo de muestreo Bootstrap.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X