GA-PLS及Matlab实现-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

Matlab软件培训

>>

GA-PLS及Matlab实现

GA-PLS及Matlab实现

发布:jingweimo | 分类:Matlab软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

http://cn.qzs.qq.com/ac/b.gifhttp://cn.qzs.qq.com/ac/b.gif常规特征提取的方法所提取的波长一般是分散的.GAs,aftersuitablemodification,producesmoreinterpretableresults,sincetheselectedwavelengthsarelessdi ...
免费学术公开课,扫码加入



http://cn.qzs.qq.com/ac/b.gif
http://cn.qzs.qq.com/ac/b.gif 常规特征提取的方法所提取的波长一般是分散的.GAs, after suitable modification, produces more interpretable results, since theselected
wavelengths are less dispersed than with other methods. GA可以提取出尽可能连续的波长。
遗传算法提取波长通常假定变量之间存在自相关.然而实际的波长变量之间不是如此的.That means that if wavelength n is selected as relvant,
wavelength n-1 and n+1 should also have a high probability of being selected.
GA的过拟合风险:随着测试变量数的增加而增大,因为变量数增加时,模型的良好性能更趋向于源于变量内在的随机相关关系。
To reduce the risk of overfitting, the final model is obtained from the results of 100 independent, very short GA runs.
it's strongly suggested to have a number of starting variables not greater than 200, in order to reduce the risk of overfitting. This can be
achieved by a 'priori' remving variables or, in case of spectra, by computing the average of n contiguous wavelengths. 起始变量数要求
dataset数据结构:
程序默认参数:
population:30chromosomes
on average 5 variables per chromosome in the original population;
5 deletion groups;
Maximum number of variables selected in the same chromosome:30;
probablity of mutation:0.01;
probability of cross-over:0.5;
autoscaling;
Maximum number of components:15;
number of runs:100;
back elimination after100 evaluaion and at the end (if the number of evaluation is not a multiple of 100);
window size for smoothing (only in the gaplssp):3.
若需要参数调整,则需修改gaplsp.m or gaplssp.m 中相应命令行
运行步骤:
1、随机化测试 randomization tests: this does 50 runs with 100 evaluations with random permutations of the Y variable
变量数与样品数比值不能太高,否则GA运行会倾向于强化噪声而不是有用信息(if the variables, maily the Y variables, are very noisy)。
gaplsopt(dataset,1)
如果测试结果值<5,则适用于GA特征筛选;
如果结果值<10,基本上可以应用GA
数值越低,数据集越适合
2、 进化代数优化测试
进化代数太少,搜索不充分,太多,则会引入大量噪声。
优化测试时分两批进行:前20次运行,200代,使用原始变量(real Y variable);后20代使用随机化变量(Y vector is shuffled as in randomization tests). A vector of the differences is then computed. It can be said that the best moment to stop a GA run corresponds to the evaluation
after which the maximum difference is obtained(差异最大化时的进化代数最优)(简而言之,真实变量测试结果变现了the ability of modeling
information+noise,随机化后变量测试变量了the ability of modeling noise,所以前后之差异则表现了the ability of modeling information).
运行程序:
gaplsopt(dataset,2)
得到figure1和figure2,figure2即为差异图,选取没有显著增加时的进化代数。如果低于50时,则选择50,最大进化代数为200.
3、遗传筛选
[b,c,d]=gaplssp(dataset,number of evaluations, precision).
精度precision是可选项
结果解释:
b:运行结束后入选变量按照次数高低讲续排列于b。(the vector of the variables in decreasing order of selection;
c:最后结果矩阵,包含四行
第一行:使用的变量数
第二行:交叉验证变异解释率(根据该结果,程序运行后生成figure2)
第三行:主成分数
第四行:RMSECV(根据该结果,程序运行后生成figure4)
d:各变量的入选频次(the vector with the freqency of selection of the variables
遗传筛选过程至少要运行5次,因为GA是一种随机化算法,每次运行的结果不一定完全一致。通过多次运行比较,可以对该方法筛选结果的稳健性有一个把握。每次运行的输出要赋予不同的变量名,如[b1,c1,d1],[b2,c2,d2]....
4、确定筛选变量数
For each program the user must decide on how many variables should be included in the model.
遗传筛选运行后,会生成四张图。通过观察图形,确定每次运行需要筛选出的变量数。
图形展示:
plotone(dataset,b1,c1,d1);plotone(dataset,b2,c2,d2);plotone(dataset,b3,c3,d3)...............
如果用于筛选的变量时原始光谱变量而非进过ipls筛选的变量,还可以使用plotmore依次把所有运行结果的变量提取出来,然后生成变量筛选区段图,在光谱下的每行短线所对应的位置即为每次筛选出的波段。(plotmore(dataset,total),total=[b1;b2;b3.....]).
图形解释:
figure1:变量入选次数频率直方图(smoothed if using gapssp)。绿线表示全局最小RMSECV的变量数位置,红线表示与全局最小RMSECV统
计不显著的最小变量数位置
figure2:交叉验证变异解释率。 随着入选变量数增加,值逐渐增大,最终达到最大,维持一个平台阶段,或者下降。红绿点的意义同上;
figure3:变量选择区段,会用红绿线在光谱图下方表示出来。对于进行区间偏最小二乘筛选过的变量,该图形意义不大,因为图形不反映实际
谱图。
figure4: RMSECV随入选变量数变化图。改图与figure2结合是确定变量数的主要方法。
其实,到此处遗传算法变量筛选已经完成。下面需要对筛选出的变量进行建模校正和预测。在此之前,要把筛选出的变量和其在原始谱图中的坐标位置提取并保存。
5、变量提取
可以进行两种变量提取方式,一种是把五次筛选出的变量的交集,即每次都被选中的变量,提取出来,最终表示成一组;其二是,对每次提取的 变量分别建模和预测,依次可看出遗传算法的变量筛选建模的稳健性和一致性。(标准化测试值高时,变异性会比较大)。
假设每次运行提取的变量数为Ni,则每次所提取的变量索引为:
Indi=bi(:,1:Ni);
%所提取的变量为
Xcali=Xcal(:,Indi);
然后就可以对提取的新变量进行Pls建模分析。
值得注意的是,在使用所建模型进行样品预测时,也要对测试变量进行如果建模变量同样的提取工作,要保证建模数据和测试数据使用相同的变量。
%提取测试变量
Xtesti=Xtest(:,Indi);
还有一种情况是,建模变量为ipl筛选出的变量,那么要利用筛选出的变量的索引,对测试变量进行同样的筛选。而且,在GA进行第二次筛选后,测试变量也要以相应的索引进行同样的二次筛选。
再有一种情况,如果ipls所提取的变量数大于200,则在进行GA筛选时需要对其加窗平均处理,那么同样的,测试变量也要进行这种工作,总之,测试变量和建模变量要保证是相同索引位置的相同变量。加窗口后进行GA筛选出的变量数对应于实际的相应倍数的变量,比如窗口宽度2,GA筛选处理20个变量,则实际利用的变量数位40.,同时要具体的指出其波长或波数段。
6、 PLS模型校正和预测
在这里可以巧借ipls的方法进行建模和预测,这个可以保证整个pls运行体系所采用的具体算法是一致的。
%提取变量为s_xcal,测试变量为s_xtest.建模y值为ycal,测试y值为ytest.
%区间数位1,生成2个模型,一个全局模型,一个为第一区间模型(两者是完全相同的)
Model=ipls(s_xcal,ycal,15,‘mean',1,[],’syst123',5);
oneModel=plsmodel(Model,1,15,'mean','syst123',5);%oneModel中RMSE项包含了前15个主成分的RMSECV值;
preModel=plspredict(s_xtest,oneModel,15,ytest);%preModel中RMSE包含了前15个主成分的RMSEP值,与上述的RMSECV值比较,可以选中综合最优的主成分数,不过更看重RMSEP.

「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2668754-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
经管之家 人大经济论坛 大学 专业 手机版