04.03.2015 Views

Algoritmo das Projeções Sucessivas Para Seleção de ... - PPGQ

Algoritmo das Projeções Sucessivas Para Seleção de ... - PPGQ

Algoritmo das Projeções Sucessivas Para Seleção de ... - PPGQ

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Anexos<br />

end<br />

save(filename,'L')<br />

else % Carregar<br />

filename = input('Entre com o nome do arquivo (entre apóstrofos e sem extensão): ');<br />

load(filename)<br />

end<br />

% Determinação do custo <strong>de</strong> classificação p/ to<strong>das</strong> as ca<strong>de</strong>ias <strong>de</strong> variaveis<br />

disp('Determinando o custo <strong>de</strong> classificação para <strong>de</strong>terminar a melhor ca<strong>de</strong>ia <strong>de</strong> variaveis ...')<br />

disp(' ')<br />

R = zeros(1,N2);<br />

Lopt = zeros(N2,N2);<br />

custo = zeros(N2,Nlamb<strong>das</strong>);<br />

N2<br />

for N = N1:N2 % <strong>Para</strong> a ca<strong>de</strong>ia <strong>de</strong> comprimento N<br />

N<br />

for i = 1:Nlamb<strong>das</strong> % partindo da variável i<br />

lamb<strong>das</strong> = L(1:N,i); % Variáveis da ca<strong>de</strong>ia<br />

% Respostas instrumentais nas variáveis da ca<strong>de</strong>ia<br />

S = cov(Xpooled(:,lamb<strong>das</strong>),1);<br />

invS = inv(S);<br />

Val2 = Val(:,lamb<strong>das</strong>);<br />

custoaux = 0;<br />

for j=1:size(Val,1) % <strong>Para</strong> cada objeto <strong>de</strong> Val<br />

x = Val2(j,:);<br />

grupox = Group_Val(j); % Classificação correta do objeto<br />

for k=1:C % <strong>Para</strong> cada classe<br />

mu = media{k};<br />

mu = mu(lamb<strong>das</strong>);<br />

r(k) = (x - mu)*invS*(x - mu)';<br />

end<br />

num = r(grupox); % Distancia <strong>de</strong> Mahalanobis a classe correta<br />

remaining = setdiff([1:C],grupox); % Demais classes<br />

<strong>de</strong>n = min(r(remaining)); % Menor Distancia <strong>de</strong> Mahalanobis as classes restantes<br />

custoaux = custoaux + num/<strong>de</strong>n;<br />

end<br />

% Calculo do custo associado a ca<strong>de</strong>ia<br />

custo(N,i)= custoaux/size(Val,1); % Custo medio<br />

end<br />

[R(N) imin] = min(custo(N,:));<br />

Lopt(1:N,N)=L(1:N,imin);<br />

end<br />

[Rbest,Nbest] = min(R(N1:N2));<br />

Nbest = Nbest+N1-1;<br />

custoopt = custo(Nbest,:);<br />

l = (Lopt(1:Nbest,Nbest))';<br />

disp(['Menor custo obtido no conjunto <strong>de</strong> validação: ' num2str(Rbest)])<br />

disp(['Número i<strong>de</strong>al <strong>de</strong> variáveis: ' num2str(Nbest)])<br />

figure,plot([N1:N2],R(N1:N2)),grid<br />

axis([N1 N2 -inf inf])<br />

119

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!