📄 pcasvm.asv
字号:
%function [ output_args ] = Untitled1( input_args )%UNTITLED1 Summary of this function goes here% Detailed explanation goes hereclear;H1=xlsread('testy.xls',1,'A1:J60');len=size(H1,1);H2=H1(:,9);delta=(max(H2)-min(H2)); %反归一delta1=min(H2); % [b,a]= butter(5,0.5);% 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 ;% A1=H1(1:40,1:8);% B1=H1(1:40,9);% C1=H1(41:60,1:8);% D1=H1(41:60,9); 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); endmax_ev =7; %选择主元个数[COEFF,SCORE,latent,tsquare]=princomp(A1);A2=A1*COEFF(:,1:max_ev);C2=C1*COEFF(:,1:max_ev);model = svmtrain(B1, A2, '-s 3 -t 2 -g 0.11 -c 50 -p 0.015');[y, accuracy] = svmpredict(D1, C2, 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 enderror1=mean(X)error2=max(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:20]';% V=[1,20,-0.5,1.5];% plot(X,'r--','LineWidth',2 );plot(H2,'r--','LineWidth',2 );% axis(V)hold onplot(Y,'b','linewidth',2);% axis(V)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -