国服韩信梦之泪 伤 调戏对面五只狗
关注数: 62 粉丝数: 23 发帖数: 1,492 关注贴吧数: 74
从网上买的代码,带入数据了但是不知道为什么还是用不了 BEST=zeros(maxiter,1); tic for iter=1:maxiter % Crossover crosspop=repmat(emp, ncross,1); crosspop=crossover(crosspop,pop,nvar, X,Y,ncross); % mutation mutpop=repmat(emp, nmut,1); mutpop=mutation(mutpop, pop, nvar,X,Y,nmut,popsize); [pop]=[pop;crosspop;mutpop]; [value, index]=sort([pop.fit]); pop=pop(index); gpop=pop(1); pop=pop (1:popsize); disp(['Best Solution =' num2str(find(gpop.var==1))]) disp(['Best Fitness =' num2str(gpop.fit)]) disp([' Time =' num2str(toc)]) figure(1) plot(BEST,'r') xlabel('Iteration') ylabel('Fitness') legend('BEST') title('GA') for i =1:k pend=pend+c.TestSize(i); testset=X([pstart:pend],:); trainset=X; trainset([pstart:pend],:)=[]; testlabel=Y(pstart:pend); trainlabel=Y; trainlabel (pstart:pend)=[]; model=symtrain(trainset, trainlabel,'kernel_function','rbf','kktviola') prdct_label= ClassificationSVM (model,testset); acc=[acc,sum(testlabel==prdct_label)/numel(testlabel)]; pstart=pstart+c.TestSize(i); end if p(j1)==1 p(j1)=0; else p(j1)=1; end mutpop (n).var=p; if sum (mutpop (n).var)>0 [mutpop(n).fit,mutpop(n).acc,mutpop(n).nfeat]=svm(X,Y,mutpop(n).var); else mutpop (n).fit=Inf; end A= textread('datalr.txt'); B = sort(A); [mu,sigma] = normfit(B) plot(A) plot(B) C=normpdf(B,mu,sigma); plot(B,C) L=mu./C-2; plot(B,L) [m,n] = ztest(C,mu,sigma) x0=1:1:10; y0=log(x); plot(x0,y0); end function result=getrule (xxx,textdata,rule)%%放入的参数是格雷码 for i=1:3 %% 这边将19改为18 value=xxx{1,i}; jj=1; if length(value)>5 %%这边是说明当前的格雷码只能是5位 Break; else for ii=1:length(value) aa=value (ii); if isequal(aa,'1') rule{jj,i}=textdata{ii,i}; jj=jj+1; else end end end end rule(1,4)=xxx(1,4);%% 将xxx的19列放入rule的19列 %% 返回获取的一条规则 result=rule; clear aa i ii jj value; end function [numberleft,numberright,number]=rulebreak(rule)%%获取的rule stringleft=zeros(5,1); stringright=zeros(5, 1); numberleft=zeros(5, 3); numberright=zeros(5, 3); number=zeros(1, 3); desr=rule; for n=1:3 i=0; for m=1:length(desr) try strrep(desr(m, n),'[',''); [mm1,mm2]=strtok (desr(m,n),','); mm2=strrep (mm2,',',''); stringleft(m,1)=str2double (mm1); stringright(m,1)=str2double (mm2); i=i+1; catch end end end end
首页 1 2 下一页