用户
我正在尝试开发一个本地模型(PLSR),该模型通过使用下面的代码(还不是完整模型,只是其中的一部分)建立在 10 个最相似样本上的模型来预测查询样本。我在尝试预测查询样本(倒数第二行)时卡住了。该模型实际上是在预测某些东西(“prd”),但不是查询样本!
这是我的代码:
require("pls")
set.seed(10000) # generate some sample data
mat <- replicate(100, rnorm(100))
y <- as.matrix(mat[,1], drop=F)
x <- mat[,2:100]
eD <- dist(x, method="euclidean") # create a distance matrix
eDm <- as.matrix(eD)
循环遍历所有 100 个样本并提取它们最相似的 10 个样本,用于后续的模型构建和查询样本的预测:
for (i in 1:nrow(eDm)) {
kni <- head(order(eDm[,i]),11)[-1] # add 10 most similar samples to kni
pls1 <- plsr(y[kni,] ~ x[kni,], ncomp=5, validation="CV") # run plsr on sel. samples
prd <- predict(pls1, ncomp=5, newdata=x[[i]]) # predict query sample ==> I suspect there is something wrong with this expression: newdata=x[[i]]
}
我不知道如何正确处理查询示例 - 非常感谢 ia 的任何帮助!
最好的祝福,
切加