Вы находитесь на странице: 1из 9

!"#$%&'$"(&) +,#&-&(&)% .

CA
CA en MA1LA8
/0#1%2 3$% 4,25$(#26 1area numero dos de MA1LA8 lmplemenLacln de CA.
789$,2 3$% 4,25$(#26 3
789$,2 3$% (1,:26 2
;:#13&)"#$6 lermln !esus lLol 8eyes
<$(=) 3$ >$"(&9&$"#26 marLes 19 de enero 12:01 hrs
<$(=) 3$ $"#,$')6 marLes 19 de enero 10:00 hrs

+?:#,)(#

Ll Anllsls de ComponenLes rlnclpales o CA es una Lecnlca esLadlsLlca de slnLesls de la
lnformacln, o reduccln de la dlmensln, es declr que es capaz a parLlr de una base de
daLos conoclda y que cuenLe con muchas varlables reduclrla a un menor numero perdlendo
la menor canLldad de lnformacln poslble o nlnguna.

Los nuevos componenLes prlnclpales sern una comblnacln llneal de las varlables
orlglnales e lndependlenLes enLre sl, adems son orLogonales, lo cual represenLa una
venLa[a a la hora de recuperar los daLos orlglnales, la prlmera componenLe es la que ms
varlanza conLlene y la [-eslma Llene ms varlanza que la [-1 eslma, las prlmeras [
componenLes dan la solucln de mlnlmos cuadrados del modelo ?=x 8+L.



!"#$%#"&' )*$'"$+

Paia la implementacion uel este algoiitmo eia necesaiio antes que naua
tenei uos seales y uniilas en una sola, estas pueuen sei tomauas ue cualquiei
lauo, incluso una imagen y tomai sus uatos, aunque paia simplificai las cosas
NATLAB se encaigo ue eso con los siguientes comanuos:
x1 = randn(1,100);
x2 = randn(1,100);

Esto me peimite tenei uos matiices con valoies , ahoia piosigo a unii las seales
paia pouei compactailas, mezclanuo la seal uno con la uos y viceveisa:
s1=x1*u.S+x2*u.8;
s2=x1*u.2+x2*u.4;
matiiz = |s1;s2j;
0na ves tenienuo esto ya es posible comenzai el algoiitmo ue PCA paia pouei
iecupeiai las seales oiiginales a paitii ue la vaiiable matiiz, el pioceuimiento
que utilice es el siguiente:
Paso uno: touos los uatos se encuentian uispeisos asi que es necesaiio
agiupailos, esto se logia a tiaves ue la eliminacion ue las meuias en los
uatos, el objetivo ue esto es pouei centiailas en un eje ue cooiuenauas:
s1 = s1 - mean(s1);
s2 = s2 - mean(s2);
vectoies = |s1;s2j;
Paso uos: Este es el paso mas uificil, ue acueiuo a la solucion piopuesta en
clase, se paitii ue un vectoi el cual uispaiaia ejes ue cooiuenauas , touos
estos ejes intentaian buscai los lugaies uonue las seales se encuentien
mas agiupauas, es uecii, se tiene un espacio ue bsqueua ueteiminauo
poi una cantiuau casi infinita ue vectoies que pueuen explicai esos uatos,
y la foima ue geneiailos es la siguiente: piimeio se consiueia a caua
vectoi como un tiiangulo, y paitienuo ue esto tenemos que: la hipotensa
es la amplituu uel vectoi, el ngulo mas aguuo es el ngulo ue elevacion y
los catetos nos ueteiminaian la pioyeccion uel vectoi. 0na ves obteniuo
esto se mezclaian los vectoies con las seales oiiginales y se tomaia la
vaiianza ue caua uno ue estos.
Paso ties: Bel paso uos pouemos obtenei la vaiianza mayoi, esta es la que
iealmente nos inteiesa, es uecii, con esto encontiaiemos a aquel vectoi
que pueua explicai l mayoi cantiuau ue uatos.
Paso cuatio: obtenemos los catetos uel vectoi obteniuo uel paso ties y
esos uatos uebein coinciuii con los uatos ue los cuales fueion mezclauas
la matiices, es uecii, en nuestio caso seiia .S y .8 , los segunuos uatos se
obtenuin a paitii ue la oitogonal ue estos.


!"#$%#"&' ,- .-#%/0+,1#

Los iesultauos obteniuos a paitii ue la implementacion explicaua en la
uiscusion tcnica fueion satisfactoiios apioximauos, es uecii, no fueion los
uatos exactos peio si muy ceicanos a estos, aunque esto se uebe al numeio ue
vectoies utilizauos, ya que cuanuo se aumentaba consiueiablemente el
numeio ue estos, los iesultauos eian caua ves mas apioximauos, poi ejemplo
cuanuo se piobo buscai en S6u giauos y se uio solo 9u vectoies los
iesultauos obteniuos fueion los siguientes:


iecoiuanuo que los espeiauos son .S y .8 , estos una buena apioximacion, sin
embaigo, al aumentai el numeio ue vectoies a Suu los uatos son mas
apioximauos:


Como pouemos obseivai al inciementai el numeio ue vectoies ue bsqueua
obtenuiemos un uato mas ceicano al espeiauo, esto es poi que nuestia piecision
aumenta y iecoiuanuo que lo que se uesea buscai es el vectoi que mejoi
explique los uatos, entonces al obtenei un mayoi espectio ue bsqueua esta
poui sei mas fiel y ue mayoi caliuau.


























2-#%/0+,1#
A continuacion se muestian touas las imgenes geneiauas poi el sistema,
asi como, la saliua en pantalla con el objetivo ue biinuai mas infoimacion aceica
ue los iesultauos obteniuos:
La imgen geneiaua consta ue cuatio giaficas, en uonue la piimeia (paite
izquieiua aiiiba) muestia los uatos uesagiupauos y oiiginales, la segunua (paite
izquieiua abajo) muestia los uatos agiupauos y los vectoies que estn
intentanuo buscai la meuia,, la teiceia (paite ueiecha aiiiba) muestia los uatos
agiupauos y el vectoi que maximizo su encuentio, la ultima imagen(paite
ueiecha abajo) muestia la seal ue touas las vaiianzas y maica con un punto
uonue estuvo la seal que encontio el vectoi, aqui se obseiva que en efecto el
vectoi mayoi encontio en uato coiiecto.

Los uatos mostiauos en la pantalla coiiesponuen a los catetos, los cuales son
nombiauos alfha y beta y a la vaiianza mayoi:

34*',"$-
Las funciones piopias ue NATLAB ocupauas en este ejeicicio son las siguientes:
5%'$"1'-# 6#1
7/108 #%94/108 :1/, 1'8 ;.", 1' 0tilizauas paia el manejo ue las gificas
asi como la inteifaz
<"',8 $1#, 0tilizauas paia obtenei el seno y el
coseno iespectivamente
=+. 0tilizaua paia obtenei la vaiianza ue los
uatos
>+? 0tilizaua paia uevolvei el valoi mximo
ue una matiiz

El couigo con toua su uocumentacion es el siguiente:
%% limpia el buffei y geneio las matiices
%paia pouei tiabajai con ellas e impiime los
%uatos oiiginales
close all;
cleai all;
giiu on
w = |.S .4;.2 .Sj;
x1 = ianun(1,1uu);
x2 = ianun(1,1uu);
subplot(2,2,1)
plot(x1,x2,'go')
title('Batos oiiginales')
giiu on
holu on
%% mezclo las matiices
s1=x1*u.S+x2*u.8;
s2=x1*u.2+x2*u.4;
matiiz = |s1;s2j;
%% les iesto la meuia
s1 = s1 - mean(s1);
s2 = s2 - mean(s2);
%% especifico hipotenusa en uno y mezclo las se.ales
hipotenusa = 1;
vectoies = |s1;s2j;
mayoi = u;
mayoialfha =u;
mayoibeta = u;
componentepiincipalmayoi = u;
%% impiimo los uatos agiupauos
subplot(2,2,2)
plot(s1,s2,'io')
giiu on
holu on
subplot(2,2,S)
plot(s1,s2,'io')
giiu on
holu on
%% fijo el total ue angulos a buscai y el numeio ue
%vectoies que ueseo sean geneiauos
angulomaximo = S6u;
novectoies = 9u;
inciemento = angulomaximonovectoies;
j = 1;
%% este foi se encaiga ue geneiai los vectoies y almacenailos
%junto con su vaiianza, un inuice que lo ubica, y sus catetos
%con el objeto ue pouei buscai mas auelante la vaiianza mayoi y iecupeiai
%los valoies y su inuice , al mismo tiempo voy giaficanuo caua uno ue estos
%vectoies en el eje
foi i=u:inciemento:S6u
alfha = sinu(i)*hipotenusa;
beta = cosu(i)*hipotenusa;
matiizab = |alfha betaj;
vecto = |alfha betaj;
componentepiincipal = vecto * vectoies;
vaiianza = vai(componentepiincipal);
subplot(2,2,S)
plot(|u alfhaj,|u betaj)
giiu on
holu on;
subplot(2,2,4)
plot(i,vaiianza,'i.')
giiu on
holu on;
matiiztotales(j,:) = |vaiianza;i;alfha;betaj; %#ok<SAuR0W>
j = j +1;
enu;
%% obtengo la vaiianza mayoi y su inuice asi como sus catetos
|mayoi inuicej= max(matiiztotales(:,1));
alfhamayoi = matiiztotales(inuice,S);
betamayoi = matiiztotales(inuice,4);
angulo = matiiztotales(inuice,2);
%% giafico la linea, paia que se pueua apieciai la extienuo
% tambien giafico la se.al final asi como su angulo
%el cual esta uauo poi el inuice y la vaiianza mayoi
x_tmp = |-S*alfhamayoi S*alfhamayoij;
y_tmp = |-S*betamayoi S*betamayoij;
giiu on
holu on
subplot(2,2,2)
plot(x_tmp,y_tmp,'y','LineWiuth',2);
subplot(2,2,2)
plot(|-2 2j ,|u uj,'k-','LineWiuth', 1)
holu on
subplot(2,2,2)
plot(|-u uj ,|-S Sj,'k-','LineWiuth', 1)
holu on
subplot(2,2,4)
plot(angulo,mayoi,'ko','NaikeiSize',8,'NaikeiFace','k')
holu on
subplot(2,2,1)
title('Batos oiiginales')
subplot(2,2,2)
title('Batos agiupauos con la linea piincipal')
subplot(2,2,S)
title('Analisis exhaustivo ue la vaiianza mayoi')
subplot(2,2,4)
title('Angulo y vaiianza mayoi')

Вам также может понравиться