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
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