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

📄 svm.asv

📁 粒子群算法
💻 ASV
字号:
%样本标准化函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入X为样本矩阵(行向量样本),index为标准化方法
%输出X1为标准化后的样本矩阵
% function [X1]=XStd(X,index)
% [n,m]=size(X);
% switch index
%     case '标准差标准化'
%         for k=1:n
%             X1(k,:)=(X(k,:)-mean(X(k,:)))/std(X(k,:));
%         end
%     case '模标准化'
%         MOData=sqrt(sum(X.^2));
%         X1=X./MOData(ones(n,1),:);
%     case '中心标准化'
%         MEANData=mean(X);
%         X1=X-MEANData(ones(n,1),:);
%     case '级差标准化'
%         MEANData=mean(X);
%         TempData1=X-MEANData(ones(n,1),:);
%         Temp=minmax(X');
%         TempData2=(Temp(:,2)-Temp(:,1))';
%         X1=TempData1./TempData2(ones(n,1),:);
%     case '级差正规化'
%         MINData=min(X);
%         TempData1=X-MINData(ones(n,1),:);
%         Temp=minmax(X');
%         TempData2=(Temp(:,2)-Temp(:,1))';
%         X1=TempData1./TempData2(ones(n,1),:);
% end

function [maxerror] =SVM(T,L)

%clear
% H1=xlsread('tafu.xls',1,'A1:I136');
 H=xlsread('testy.xls',1,'A1:J60');
 H1=[];
 for i=1:L
  if T(1,L)==1
      H1=[H1,H(:,1)];
  end
 end
 G=T(1,L+1);
 C=T(1,L+2);
 P=T(1,L+3);
 
   
len=size(H1,1);
H2=H1(:,9);

delta=(max(H2)-min(H2));  %反归一
delta1=min(H2); 
%H=xlsread('tading.xls',1,'A1:H123');
  
%  
%   [b,a]= butter(5,0.8);
%   H1=filtfilt(b,a,H);

data=H1;
data=(data-ones(size(data,1),1)*min(data))./(ones(size(data,1),1)*(max(data)-min(data)));
H1=data ;

k=1;
for L=1:len

    switch L
        case 1
            A1=H1(2:len,1:8);
            B1=H1(2:len,9);
            C1=H1(1,1:8);
            D1=H1(1,9);
        case len
            A1=H1(1:len-1,1:8);
            B1=H1(1:len-1,9);
            C1=H1(len,1:8);
            D1=H1(len,9);

        otherwise
            A1=[H1(1:L-1,1:8);H1(L+1:len,1:8)];
            B1=[H1(1:L-1,9);H1(L+1:len,9)];
            C1=H1(L,1:8);
            D1=H1(L,9);


    end
%      model = svmtrain(B1, A1, '-s 3 -t 2 -g 0.11 -c 50 -p 0.015');
    model = svmtrain(B1, A1, '-s 3 -t 2 -g G -c C -p P');
    [y, accuracy] = svmpredict(D1, C1, model);
    y= y*delta+delta1;
    x=abs(H2(L)-y)/H2(L);

    if k==1
        Y=y;
        X=x;
        D=D1;
        k=0;
    else
        Y=[Y;y];
        X=[X;x];
        D=[D;D1];
    end


end
meanerror=mean(X)
maxerror=max(X)
stderror=std(X)
%    X=abs(D1-y);
%  error1=sqrt(sum(X.^2)/test_num)
%  error2=max(abs(D1-y))
%  
% %   y= y*(max(H2)-min(H2))+min(H2);
%  T=[1:1:60]';
%  V=[1,60,0,0.2];
%  T1=[50:1:100]';
%  T2=[50:1:100]'; 
%  
% plot(H2,Y,'rh','LineWidth',2 );
% hold on
% plot(T1,T2, 'k-','LineWidth',2 );
%  axis(V);
   plot(H2,'r--','LineWidth',2 );
% axis(V)
   hold on
   plot(Y,'b','linewidth',2);
%    axis(V)

⌨️ 快捷键说明

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