Está en la página 1de 4

Pregunta 2

clc
clearvars
%Cargamos los datos
load data2.mat
TFORCE=force;

%crear los targets


for i=1:2000
if target(i)==1
T1(:,i)=[1;0;0];
elseif target(i)==2
T1(:,i)=[0;1;0];
else
T1(:,i)=[0;0;1];
end
end

%dividir data
[trainInd,valInd,testInd] = dividerand(2000,0.7,0.15,0.15);

Tforcetrain=TFORCE( trainInd,:)';
Tforcevalid=TFORCE( valInd,:)';
Tforcetest=TFORCE( testInd,:)';
T1train=T1( :,trainInd);
T1valid=T1( :,valInd);
T1test=T1( :,testInd);

%feedforwardnet sin pca


net = feedforwardnet(20);
[net , tr] = train(net,Tforcetrain,T1train);
%Probamos la data
y = net(Tforcevalid);
perf = perform(net,y,T1valid)

perf = 0.0147

testX = Tforcevalid;
testT = T1valid;
testY = net(testX);
testIndices = vec2ind(testY);
%Creamos la matriz de confusion
plotconfusion(testT,testY)

1
%Analisis por PCA
%preparamos la data
X = TFORCE;
mu = mean(X);
r = range(X);
X = (X-mu)./r;
[P,S,V] = pca(X);

Vnorm = V/sum(V); %
suma=0;
j=1;
while suma <=0.95
suma=Vnorm(j)+suma;
j=j+1;
end

2
j-1

ans = 8

%Con 8 caracteristicas tenemos mas del 95% de varianza acumulada

%feedfoward con pca


net1=feedforwardnet([12 8]);
[net1 , tr1] = train(net1,S(trainInd,8)',T1train);
y1 = net1(S(valInd,8)');
perf1 = perform(net1,y1,T1valid)

perf1 = 0.0541

testX1 = S(valInd,8)';
testT1 = T1valid;
testY1 = net1(testX1);
testIndices1 = vec2ind(testY1);
%Creamos la matriz de confusion
plotconfusion(testT1,testY1)

3
%Vemos que el feedfoward con pca tiene una muy buena precision,esto es un
%gran aporte para que las computadoras de bajo rendimiento

También podría gustarte