Vous êtes sur la page 1sur 9

MAESTRA EN INVESTIGACIN E INNOVACIN DE TECNOLOGAS

DE LA INFORMACIN Y COMUNICACIN
LABORATORY 2: NUMERICAL AND DATA-INTENSIVE COMPUTING
(COURSE 2012/2013)
SYSTEM OF LINEAR EQUATIONS
PROFESOR: DR. CARLOS SANTACRUZ
JOS LUIS CARRILLO MEDINA
CESAR NARANJO HIDALGO

EJERCICIO 1.
A partir de los datos del Ejercicio No. 3 de la anterior Unidad. Calcule:
Fraction of the total variance explained by the first principal component
Regression coefficients using the first principal component instead of the original four
variables
Scrip de MatLab
% Scrip de PCA
clear all
clc

Z = load ('matrices.txt')
X= Z(:,1:5)
n=size(X);
S=cov(X)
[U,L]=eig(S)
m=size(S);

Cargamos los datos del Ejercicio No. 3 en Z.


En X insertamos las 5 primeras columnas de la
matriz Z.
Obtenemos el tamao de la matriz
En S obtenemos la covarianza de X
Obtenemos en L la matriz diagonal de autovalores
asociados a S y U es la matriz completa en donde
cada columna es un autovector de S tal que S*U =
U*L.

% Componente principal mas importante


for i=1:m(1)
media(i)=mean(X(:,i));
end
media
for k=1:m(1)
for j=1:n(1)
a(j,k)=0;
for i=1:m(1)
a(j,k)= a(j,k) + (X(j,i)-media(i))*U(i,m(1)-k+1)
end
end
end

Obtenemos la media de X

Aplicamos la proyeccin lineal de las variables


originales, nuevas variables

a
% # reconstruccin
% # total n_pc=m(1)
n_pc=1;
for j=1:n(1)
Xr(j,:)=media;
for k=1:n_pc;
Xr(j,:)= Xr(j,:) + a(j,k)*U(:,m(1)+1-k)'
end
end
Xr
p=0;

Nmero de componentes

Reconstruimos los valores de X a partir de los


componentes

for k=1:n_pc
p = p + L(m(1)+1-k,m(1)+1-k);
end
p = p / trace(l);
fprintf('El aporte de las %i componentes es de %f \n',j,p*100);

Aplicamos la definicin de varianza

Obtenemos el porcentaje de la varianza de cada


componente

Mediante este script se obtiene el porcentaje de recuperacin de las valores originales, a travs del
nmero de componentes: 1, 2, 3, 4 y 5 componentes ( autovalores asociados a S).
n_pc --> nmero de componentes
Con n_pc = 5;
Ejecutamos el script y obtenemos:
Z = matriz de datos (De la forma: A1X1 + A2X2 + A3X3 + A4X4 + A5X5 = Y)
Columna 1: X1; Columna 2: X2; Columna 3: X3; Columna 4: X4; Columna 5: X5; Columna 6: Y;
Z=
86
62
110
101
100
78
120
105
112
120
87
133
140
84
106
109
104
150
98
120
74
96
104
94
91

110
97
107
117
101
85
77
122
119
89
81
120
121
113
102
129
83
118
125
94
121
114
73
121
129

100
99
103
93
95
95
80
116
106
105
90
113
96
98
109
102
100
107
108
95
91
114
93
115
97

95
99
101
91
102
94
89
112
110
87
90
101
100
85
99
101
93
108
100
96
95
91
80
85
105

87
100
103
95
88
84
74
102
105
97
88
108
89
78
109
108
102
110
95
90
85
103
80
104
83

88
80
96
76
80
73
58
116
104
99
64
126
94
71
111
109
100
127
99
82
67
109
78
115
83

En X obtenemos las columnas 1 -5


X=
86
62
110
101
100

110 100 95 87
97 99 99 100
107 103 101 103
117 93 91 95
101 95 102 88

78
120
105
112
120
87
133
140
84
106
109
104
150
98
120
74
96
104
94
91

85
77
122
119
89
81
120
121
113
102
129
83
118
125
94
121
114
73
121
129

95
80
116
106
105
90
113
96
98
109
102
100
107
108
95
91
114
93
115
97

94
89
112
110
87
90
101
100
85
99
101
93
108
100
96
95
91
80
85
105

84
74
102
105
97
88
108
89
78
109
108
102
110
95
90
85
103
80
104
83

En S obtenemos la Covarianza de los valores de X


S=
411.9900 35.8967 32.4917 44.8233 70.7867
35.8967 299.0433 79.4833 76.1883 73.2400
32.4917 79.4833 78.4167 24.9083 73.9333
44.8233 76.1883 24.9083 65.1567 40.2450
70.7867 73.2400 73.9333 40.2450 113.9767
En U obtenemos los autovectores asociados a S
U=
-0.0237 0.0817 -0.1675 -0.6015
0.1372 0.1841 -0.4455 0.7344
-0.7371 0.3294 0.5004 0.2206
-0.2980 -0.9179 0.0032 0.1570
0.5903 -0.0915 0.7233 0.1598

0.7765
0.4577
0.2216
0.2098
0.3074

En L obtenemos los autovalores asociados a S


L=
15.5246
0
0
0
0
0
40.9578
0
0
0
0
0
103.8040
0
0
0
0
0
325.7405
0
0
0
0
0
482.5564
Obtenemos la media de los valores de X
media =
103.3600 106.7200 100.8000 96.3600 94.6800

En a obtenemos los coeficientes de regresin C1, C2, C3, C4, C5


a=
-14.8022
-34.7732
9.3027
0.1176
-7.3825
-34.6955
-13.1918
17.1662
19.5153
4.4913
-30.2553
36.8644
32.9393
-20.2901
6.6631
19.9102
-8.9905
49.9030
6.6616
4.2997
-21.6950
1.9753
-24.6088
2.8963
-2.0210

11.2337
18.6071
-1.2450
6.4582
-3.6409
-4.0538
-40.8837
17.2136
8.7594
-23.1952
-13.4968
-2.5274
-12.9464
11.1904
-0.5429
16.0918
-17.3395
-14.1265
18.8599
-21.4343
24.2254
13.1730
-31.7843
18.9551
22.4493

-4.5135
14.2117
5.8966
-7.8732
-4.6046
3.2885
-14.9351
5.8686
3.1924
8.8571
3.9417
4.8738
-18.9955
-13.0573
16.1293
-0.6207
15.3430
1.3848
-3.4001
-3.4081
-13.3543
10.5946
0.3417
9.0155
-18.1771

0.8734
-8.6711
-3.7017
4.0212
-7.8040
-4.8378
-2.3168
-7.0712
-8.7847
7.8594
-3.1806
3.4073
1.2196
10.6061
-1.6858
-0.5196
-2.1643
-4.1571
1.9293
-2.1348
-0.8632
9.2462
7.6343
16.1170
-5.0211

-2.6767
3.3281
1.7881
9.0022
-2.0538
-3.7050
0.8440
-9.4853
-0.3250
-1.7639
2.7713
-1.3932
0.1908
-3.0765
0.9120
8.5196
2.6417
1.4466
-3.5672
-0.5205
4.5709
-2.0477
-2.6842
0.6013
-3.3176

95.0000
99.0000
101.0000
91.0000
102.0000
94.0000
89.0000
112.0000
110.0000
87.0000
90.0000
101.0000
100.0000
85.0000
99.0000
101.0000
93.0000
108.0000
100.0000
96.0000
95.0000
91.0000
80.0000

87.0000
100.0000
103.0000
95.0000
88.0000
84.0000
74.0000
102.0000
105.0000
97.0000
88.0000
108.0000
89.0000
78.0000
109.0000
108.0000
102.0000
110.0000
95.0000
90.0000
85.0000
103.0000
80.0000

Datos recuperados con n_pc = 5;


Xr =
86.0000
62.0000
110.0000
101.0000
100.0000
78.0000
120.0000
105.0000
112.0000
120.0000
87.0000
133.0000
140.0000
84.0000
106.0000
109.0000
104.0000
150.0000
98.0000
120.0000
74.0000
96.0000
104.0000

110.0000
97.0000
107.0000
117.0000
101.0000
85.0000
77.0000
122.0000
119.0000
89.0000
81.0000
120.0000
121.0000
113.0000
102.0000
129.0000
83.0000
118.0000
125.0000
94.0000
121.0000
114.0000
73.0000

100.0000
99.0000
103.0000
93.0000
95.0000
95.0000
80.0000
116.0000
106.0000
105.0000
90.0000
113.0000
96.0000
98.0000
109.0000
102.0000
100.0000
107.0000
108.0000
95.0000
91.0000
114.0000
93.0000

94.0000 121.0000 115.0000 85.0000 104.0000


91.0000 129.0000 97.0000 105.0000 83.0000
El aporte de las 25 componentes es del 100.000000
Es decir que el porcentaje de recuperacin aplicando PCA es del 100.00%

ORD.

NO.
COMPONENTES

% DE
RECUPERACIN

1
2
3
4
5

1
2
3
4
5

49.82%
83.45%
94.16%
98.39%
100.00%

De lo anterior se puede indicar que con un nmero de componentes igual a 5 se recuperan el


100% de los valores originales, con 4 se recupera el 98,39% de los datos, siendo este tipo de
aplicaciones utilizada en sistemas de audio, video, fotografa, internet para filtrar: ruidos, software,
etc., tenindose una gran cantidad de aplicaciones en otros campos.
COEFICIENTE DE REGRESIN
Primer Componente (C1)
C1
-14.8022
-34.7732
9.3027
0.1176
-7.3825
-34.6955
-13.1918
17.1662
19.5153
4.4913
-30.2553
36.8644
32.9393
-20.2901
6.6631
19.9102
-8.9905
49.9030
6.6616
4.2997
-21.6950
1.9753
-24.6088
2.8963
-2.0210

Y
88
80
96
76
80
73
58
116
104
99
64
126
94
71
111
109
100
127
99
82
67
109
78
115
83

Podemos graficamos estos datos en Excel, obtenemos la dispersin de los mismos y los valores de
1 y 2.

Mediante el programa implementado en el ejercicio anterior de regresin se obtienen tambin los


valores:
Intercepcin
con el eje Y
1
Pendiente
2

92,1999972

0,70172616

Y = 1 + 2 * C1
1 = 92,1999972
2 = 0,70172616
Coeficiente de Regresin: Primer Componente (C1)
Y= 92,1999972 + 0,70172616 * C1
Con esto obtenemos los valores de X con una principal componente: n_pc = 1;
91.8664
76.3593
110.5834
103.4513
97.6276
76.4196
93.1168
116.6892
118.5132
106.8474
79.8673
131.9845

99.9457
90.8058
110.9774
106.7738
103.3414
90.8414
100.6827
114.5762
115.6513
108.7755
92.8735
123.5912

97.5198 93.2547 90.1295


93.0941 89.0651 83.9899
102.8615 98.3116 97.5399
100.8261 96.3847 94.7162
99.1640 94.8113 92.4105
93.1113 89.0814 84.0138
97.8766 93.5925 90.6245
104.6041 99.9612 99.9573
105.1247 100.4540 100.6794
101.7953 97.3022 96.0607
94.0953 90.0129 85.3788
108.9694 104.0936 106.0130

128.9368
87.6051
108.5337
118.8198
96.3791
142.1087
108.5326
106.6986
86.5142
104.8938
84.2517
105.6089
101.7908

121.7949
97.4341
109.7694
115.8320
102.6054
129.5584
109.7687
108.6878
96.7911
107.6240
95.4576
108.0455
105.7951

108.0995 103.2702 104.8063


96.3036 92.1034 88.4424
102.2766 97.7578 96.7284
105.2122 100.5369 100.8008
98.8077 94.4739 91.9161
111.8588 106.8290 110.0214
102.2762 97.7575 96.7279
101.7528 97.2620 96.0018
95.9923 91.8087 88.0104
101.2377 96.7744 95.2873
95.3466 91.1974 87.1147
101.4418 96.9676 95.5704
100.3521 95.9360 94.0587

Los datos obtenidos con la primera componente no son buenos por cuanto estamos utilizando el
49,82% de la informacin.
EJERCICIO NO. 2.
Usando el algoritmo Page Rank determinar la pgina web ms importantes de la EPS.
Para realizar esta tarea se cuentas con:
eps.ids: Archivo que representa la relacin entre una pgina web con cada uno de sus enlaces de
la EPS y su correspondiente nmero de identificacin.
epsfull.mat: Archivo que contiene la matriz de relacin de pginas web de la EPS
E( i, j )
0
si el identificador i de la pgina no tiene ningn enlace a la pgina j,
1
si existe un enlace desde la pgina i a la pgina j.
Existen 3095 pginas en la web de la EPS
Calculo de la pagina ms importante de la EPS (algoritmo Page Rank).
La matriz Q de la cadena de Markov, la cual se define como la matriz de hipervnculos, donde

Donde k es el nmero total de pginas vinculadas con la pagina j.

1->1, 1->2, 1->3


2->1, 2->2
3->2, 3->3

La pgina web nmero 3

La implementacin del algoritmo se la realiza en MatLab


%Page Rank Algorithm determine
%the most important EPS web-page.
close all
clc
clear all
format long;
eps=load('epsfull.mat','-ascii');

%Damos formato a variables numricas


% Leemos el archivo epsfull.mat

[F,C]=size(eps);

% calculamos la dimensin de la matriz eps

for i=1:F
eps(i,i)=1;
end

% colocamos 1s en la diagonal, para que sea invertible

for i=1:F
SF(i,1)=sum(eps(i,:));
end

% Suma por filas de todos los unos

% Construccin de la matriz de transicin Q


for i=1:F
Pro(i,:)=(eps(i,:))/(SF(i,1));
% Matriz de probabilidades Pro
end
% La matriz Q en sumatoria de probabilidades debe sumar 1 en columnas,
% La matriz dada est estructurada como filas, por lo que se hace la transpuesta
Prob = Pro';
for i=1:F
Pno(i,1)= round(rand()*1);
end
SPno = 0;
for i=1:F
SPno = SPno + sum(Pno(i,1));
end

%Obtengo la matriz inicial Pno para el clculo del


% autovector

%Sumo los unos que existe en el vector

suma = 0;
for i=1:F
Pno(i,1) = Pno(i,1)/SPno;
end

% Matriz de probabilidades Pno, clculo de los


% autovectores

%Clculo del autovalores


nIter = 10000;
epsilon = 0.0000001;

% Nmero de iteraciones, valor de parada


% Epsilon valor de parada

i=1;
while (i<=nIter)
Pn = Prob*Pno;
nPno = Pno/norm(Pno);
nPn = Pn/norm(Pn);
ErrP = norm(nPn - nPno)
if (ErrP < epsilon)
j = i;
i = nIter + 1;
end
i = i + 1;
Pno = Pn;
end
maxElem = max (Pn);
i = 1;

% Aplicamos el mtodo de potencias


% Calculo la norma de la Probabilidad Pno.
%Calculo el error generado entre el nuevo y antiguo
%autovalores
% Comparo con el psilon el error generado

%Clculo el mximo autovalor

while (i<=F)
if (Pn(i) == maxElem)
fprintf('El maximo: %d',i);
%Encuentro la posicin del mximo autovalor
end
i = i + 1;
% fprintf('%f %f %d\n',Pn(i:1), i, maxElem);
end
Generado el programa se obtiene los siguientes resultados
Se aplico un:
nIter = 10000;
epsilon = 0.0000001;
obtenindose que:
La mxima probabilidad corresponde: 0.029596541640697
Nmero de Iteraciones realizadas: 172
El error 9.670484508254124e-008
El autovalor mximo encontrado est en la posicin: 2140
De. archivo eps.ids la fila 2140 corresponde a

Vous aimerez peut-être aussi