最近一篇文章,审稿人要我做 Genetic algorithm 与Gaussian process结合建立模型。 这建立模型过程中用GA做变量选择,这下把我难住了,我只会 使用matlab的GA工具箱和Libsvm结合进行这样的任务。 因为Gaussian process方法在matlab中的使用不会用,我原来文章中是用的 R 的kernlab包中Gaussian Process,当然,建立Gaussian Process 模型时候,我使用的自变量是由 GA+SVM方法选择的,审稿人说不合理,要我GA+GP(gaussian process)本身选择的,所以就把我难住了。
我搜寻了Internet发现R的“genalg”包能做GA,并且这个包还给出了 GA+pls选择波长的例子,但是,我不知道如何才能提取选择的波长,这个包好像没有给出来,而我恰恰要提取选择的自变量来建立模型,得到各种统计参数(cross-validation R2, pred R2 etc)以便 GA+SVM和GA+GP进行比较。
哪位能给些帮助,是GA+GP得以实现,使用 Matlab软件也行。 谢谢了! 这里 GA使用二进制编码 0-没选择的变量 1-选择的变量。
我的数据是这样的: training set is matrix: 191*106
test set: 73*106
用GA+GP做回归预测。
还有不知道 matlab的 GP包“netlab3_3”或者“gpml-matlab-v3.1-2010-09-27.zip”如何得到预测的输出,就像libsvm这样的:
cmd = ['-v ',num2str(v),' -c',num2str(cgp(nind,1)), '-g ',num2str(cgp(nind,2)),' -p ',num2str(cgp(nind,3)),' -s 3'];
model = svmtrain(train_y,train_data_best,cmd_best);
train_pred = svmpredict(train_y,train_data_best,model); % 得到训练集输出的预测值
GP包(matlab)怎么的得到“train_pred”呢?
下面的语句是:GP官网(http://www.gaussianprocess.org/gpml/code/matlab/doc/)给的预测语句格式
prediction: [ymu ys2 fmu fs2 ] = gp(hyp, inf, mean, cov, lik, x, y, xs);
这里面的ymu是预测输出吗?相当于 “train_pred”吗? 希望各位朋友帮个忙,解决这个问题,因为过几天,我就要把这个reviwer的意见传上去了,可现在人家提的意见我还没有解决,谢谢大家了!