【发布时间】:2015-03-09 22:52:39
【问题描述】:
我在 R 中有一个偏最小二乘回归模型对象,我想用它来预测值作为地图上的空间模式。
然而,到目前为止,这对我不起作用。 PLS模型在R(PLS包)中处理,输入为表格:
Dependent variable Indepentent var. 1 Indepentend var ... Indepented var. 101
Value value value value
Value value value value
... ... ... ...
所以我想根据地图上每个像素的 101 个独立变量来预测因变量的值。然而,PLS 模型输入是一个表格,预测数据由一个具有 101 个波段(层)的 BSQ 文件组成。所以训练数据和预测数据的数据结构是完全不同的。
有人告诉我,我应该堆叠 BSQ 地图,然后我可以使用 Predict 功能。这不起作用。
我怎样才能以某种方式将 BSQ 文件中的 101 个波段强制转换为一个结构,以便我能够根据我的 PLS 模型对每个像素进行预测? Bair 请记住,在 R 方面我有点新手。
library(raster)
library(rgdal)
library(maptools)
library(sp)
library(pls)
# the dir and name of the plsr model object
modDir <- "H:/Process"
modName <- "Model"
# the dir and type of the remote sensing image
rsDir <- "H:/data"
rsName <- "Hyper.bsq"
# Read the PLSR model
setwd("H:/Process")
# setwd(paste(modDir, modName, sep= "/"))
m <- load(list.files()[grep("Model", list.files())])
mod <- get(m)
# Read the RS image
setwd(rsDir)
rs <- stack(rsName)
predict(mod, rs)
谢谢!阿伦德
【问题讨论】:
标签: r