⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ant_pls.m

📁 基于matlab编写的蚁群-偏最小二乘算法(AOC_PLS),该算法实现含变量多的数据的变量的筛选!
💻 M
字号:
% 主程序,用蚁群-偏最小二乘算法,实现变量筛选
%作者:吴雨前
%联系:yqwu1983@yahoo.com.cn


clc
clear

% Ant Colony Algorithm -PLA For variable selection
%
% X   N X P
% Y   N X 1

%X=[];
%Y=[];
X=[-2.53149	-0.41256	-6.77561	-1.01659	-0.64374	0.89441	-0.41266	0.68460	-0.90310	0.68990
-1.21776	-0.65189	-6.40118	-0.41634	-0.11887	0.25217	0.32731	-0.28840	-0.80573	-0.05820
-0.74542	-0.24601	-6.59393	0.54129	-0.47573	0.71970	-0.30636	0.44332	-0.01651	-0.32426
0.25095	-0.78851	-6.11089	0.21810	0.23954	-0.23516	0.93342	-1.01741	-0.56790	-0.74220
0.29569	0.70866	-5.19883	1.02243	-3.64192	0.50571	-0.49753	0.91110	0.64913	-0.88996
6.82799	0.36621	-4.69141	-1.43225	2.38645	-3.60612	-0.33665	-0.18797	0.97841	1.71315
1.48817	0.49672	-4.61274	1.06960	-3.07155	-0.55702	0.30572	-0.35100	0.23614	-1.37069
-2.49320	-1.17858	1.16616	-0.19692	3.31043	-0.30217	0.20636	0.00686	0.19997	0.55371
-2.18857	-0.65093	1.30776	0.39765	3.15866	-0.49188	-0.51148	0.31691	0.42967	0.47876
-0.42621	-0.74840	1.90942	0.47937	4.18196	-1.57382	0.29776	1.35266	-0.68697	0.98578
-0.93404	-0.95380	0.58946	-0.96728	2.12174	4.27361	-0.23938	-0.73108	0.75832	0.57055
-1.23377	-0.17068	2.82617	0.42938	-0.46165	-0.66537	-0.23771	0.52962	0.75549	0.11571
3.91433	0.44287	3.57892	-0.27585	0.09022	3.59127	0.45372	0.44177	-0.81174	0.88457
1.02244	-0.10615	2.94169	1.15330	-0.77087	1.24919	0.69636	0.44324	1.88238	-0.23881
3.05449	0.34061	3.09991	0.03058	-0.49419	4.04999	-0.43206	-0.27459	-0.51105	-0.02843
1.28839	0.28232	3.98786	1.36906	0.79406	-1.24866	-0.54278	-0.14673	-1.10906	-0.56701
-3.37873	3.82846	1.02518	0.33085	-1.86641	-0.61436	0.20761	-0.65713	-0.08527	3.56941
-0.05980	-3.08174	5.96538	-0.38281	-7.80811	-2.05111	-0.17008	-0.44587	-0.26229	1.51322
-1.51599	0.56901	3.31901	-1.84318	-1.02288	-0.91279	0.85845	0.69580	0.43677	-1.43314
1.24051	1.43806	4.61560	-0.47728	0.06867	-1.64430	0.01906	0.23455	-1.26274	-2.19770
-2.18151	1.17880	2.25204	-1.33946	0.02619	-0.42329	-0.64065	-0.69798	0.63073	-2.64911
-0.47648	-0.66247	1.80004	1.30635	3.99801	-1.21000	0.02156	-1.26228	0.06537	-0.57524
];
Y=[3.210000
3.170000
3.960000
3.330000
4.770000
4.700000
4.660000
3.260000
4.090000
4.130000
3.250000
4.470000
4.440000
4.720000
4.550000
4.920000
4.620000
4.350000
3.850000
4.920000
4.280000
4.100000
];
%初始化
M=size(X,2);
%蚂蚁数量
maxant=2000;
%PLS主成份数
A=2;
%选择变量数目
K=8;
%原始变量权重
W=ones(1,M)/100;
%信息素挥发速率
luo=0.0;
%常数项
deltaW=0.1;
%全局R^2
CRS=zeros(maxant,1);
%最优R^2
BestRS=0;
%全局选择的变量
CSV=zeros(maxant,K);
%最优选择变量
BestSV=zeros(1,K);
for antnum=1:maxant
    %选择概率初始化
    p=zeros(1,M);
    p=W./sum(W);
    %初始化选择变量
    SV=zeros(1,K);
    i=1;
    while i<=K
        R=rand;
        psum=0;
        for j=1:M
            psum=psum+p(1,j);
            if(psum>R)
                if(find(SV~=j))
                    SV(1,i)=j;
                    i=i+1;
                    break;
                end
            end
        end
    end
    [RS]=wuantplsvsf(X,Y,SV,A);
    CRS(antnum,1)=RS;
    CSV(antnum,:)=SV;
    if(RS>BestRS)
        BestRS=RS;
        BestSV=SV;
    end
    L=(10e4-1)/(10^(5*RS)-1);
    W=(1-luo)*W + deltaW/L;
end
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -