Pregunta 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

PC 7 - SEÑALES Y DATOS

LEONARDO CASTAÑEDA LOPEZ

PREGUNTA N° 1

Importe la data de wine.data. Estos datos son el resultado de un análisis químico de vinos cultivados
en la misma región en Italia, pero derivados de tres cultivares diferentes. El análisis determinó las
cantidades de 13 componentes (atributos) que se encuentran en cada uno de los tres tipos de vinos.
Use el análisis por PCA y las técnicas de agrupamiento para poder agrupar de manera óptima las
observaciones. Tenga en cuenta que la primera columna de la data importada representa el tipo de
vino mientras las 13 columnas restantes los atributos. Mayor información de la data se encuentra en el
archivo wine.names.

clearvars
load wine.data

%usamos analisis PCA


%extraemos la primera columna:
winedat = wine(:,2:14);
tlb = array2table(winedat)

tlb = 178×13 table

winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7

1 14.2300 1.7100 2.4300 15.6000 127 2.8000 3.0600


2 13.2000 1.7800 2.1400 11.2000 100 2.6500 2.7600
3 13.1600 2.3600 2.6700 18.6000 101 2.8000 3.2400
4 14.3700 1.9500 2.5000 16.8000 113 3.8500 3.4900
5 13.2400 2.5900 2.8700 21 118 2.8000 2.6900
6 14.2000 1.7600 2.4500 15.2000 112 3.2700 3.3900
7 14.3900 1.8700 2.4500 14.6000 96 2.5000 2.5200
8 14.0600 2.1500 2.6100 17.6000 121 2.6000 2.5100
9 14.8300 1.6400 2.1700 14 97 2.8000 2.9800
10 13.8600 1.3500 2.2700 16 98 2.9800 3.1500
11 14.1000 2.1600 2.3000 18 105 2.9500 3.3200
12 14.1200 1.4800 2.3200 16.8000 95 2.2000 2.4300
13 13.7500 1.7300 2.4100 16 89 2.6000 2.7600
14 14.7500 1.7300 2.3900 11.4000 91 3.1000 3.6900
15 14.3800 1.8700 2.3800 12 102 3.3000 3.6400
16 13.6300 1.8100 2.7000 17.2000 112 2.8500 2.9100

1
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7

17 14.3000 1.9200 2.7200 20 120 2.8000 3.1400


18 13.8300 1.5700 2.6200 20 115 2.9500 3.4000
19 14.1900 1.5900 2.4800 16.5000 108 3.3000 3.9300
20 13.6400 3.1000 2.5600 15.2000 116 2.7000 3.0300
21 14.0600 1.6300 2.2800 16 126 3 3.1700
22 12.9300 3.8000 2.6500 18.6000 102 2.4100 2.4100
23 13.7100 1.8600 2.3600 16.6000 101 2.6100 2.8800
24 12.8500 1.6000 2.5200 17.8000 95 2.4800 2.3700
25 13.5000 1.8100 2.6100 20 96 2.5300 2.6100
26 13.0500 2.0500 3.2200 25 124 2.6300 2.6800
27 13.3900 1.7700 2.6200 16.1000 93 2.8500 2.9400
28 13.3000 1.7200 2.1400 17 94 2.4000 2.1900
29 13.8700 1.9000 2.8000 19.4000 107 2.9500 2.9700
30 14.0200 1.6800 2.2100 16 96 2.6500 2.3300
31 13.7300 1.5000 2.7000 22.5000 101 3 3.2500
32 13.5800 1.6600 2.3600 19.1000 106 2.8600 3.1900
33 13.6800 1.8300 2.3600 17.2000 104 2.4200 2.6900
34 13.7600 1.5300 2.7000 19.5000 132 2.9500 2.7400
35 13.5100 1.8000 2.6500 19 110 2.3500 2.5300
36 13.4800 1.8100 2.4100 20.5000 100 2.7000 2.9800
37 13.2800 1.6400 2.8400 15.5000 110 2.6000 2.6800
38 13.0500 1.6500 2.5500 18 98 2.4500 2.4300
39 13.0700 1.5000 2.1000 15.5000 98 2.4000 2.6400
40 14.2200 3.9900 2.5100 13.2000 128 3 3.0400
41 13.5600 1.7100 2.3100 16.2000 117 3.1500 3.2900
42 13.4100 3.8400 2.1200 18.8000 90 2.4500 2.6800
43 13.8800 1.8900 2.5900 15 101 3.2500 3.5600
44 13.2400 3.9800 2.2900 17.5000 103 2.6400 2.6300
45 13.0500 1.7700 2.1000 17 107 3 3
46 14.2100 4.0400 2.4400 18.9000 111 2.8500 2.6500
47 14.3800 3.5900 2.2800 16 102 3.2500 3.1700
48 13.9000 1.6800 2.1200 16 101 3.1000 3.3900
49 14.1000 2.0200 2.4000 18.8000 103 2.7500 2.9200

2
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7

50 13.9400 1.7300 2.2700 17.4000 108 2.8800 3.5400


51 13.0500 1.7300 2.0400 12.4000 92 2.7200 3.2700
52 13.8300 1.6500 2.6000 17.2000 94 2.4500 2.9900
53 13.8200 1.7500 2.4200 14 111 3.8800 3.7400
54 13.7700 1.9000 2.6800 17.1000 115 3 2.7900
55 13.7400 1.6700 2.2500 16.4000 118 2.6000 2.9000
56 13.5600 1.7300 2.4600 20.5000 116 2.9600 2.7800
57 14.2200 1.7000 2.3000 16.3000 118 3.2000 3
58 13.2900 1.9700 2.6800 16.8000 102 3 3.2300
59 13.7200 1.4300 2.5000 16.7000 108 3.4000 3.6700
60 12.3700 0.9400 1.3600 10.6000 88 1.9800 0.5700
61 12.3300 1.1000 2.2800 16 101 2.0500 1.0900
62 12.6400 1.3600 2.0200 16.8000 100 2.0200 1.4100
63 13.6700 1.2500 1.9200 18 94 2.1000 1.7900
64 12.3700 1.1300 2.1600 19 87 3.5000 3.1000
65 12.1700 1.4500 2.5300 19 104 1.8900 1.7500
66 12.3700 1.2100 2.5600 18.1000 98 2.4200 2.6500
67 13.1100 1.0100 1.7000 15 78 2.9800 3.1800
68 12.3700 1.1700 1.9200 19.6000 78 2.1100 2
69 13.3400 0.9400 2.3600 17 110 2.5300 1.3000
70 12.2100 1.1900 1.7500 16.8000 151 1.8500 1.2800
71 12.2900 1.6100 2.2100 20.4000 103 1.1000 1.0200
72 13.8600 1.5100 2.6700 25 86 2.9500 2.8600
73 13.4900 1.6600 2.2400 24 87 1.8800 1.8400
74 12.9900 1.6700 2.6000 30 139 3.3000 2.8900
75 11.9600 1.0900 2.3000 21 101 3.3800 2.1400
76 11.6600 1.8800 1.9200 16 97 1.6100 1.5700
77 13.0300 0.9000 1.7100 16 86 1.9500 2.0300
78 11.8400 2.8900 2.2300 18 112 1.7200 1.3200
79 12.3300 0.9900 1.9500 14.8000 136 1.9000 1.8500
80 12.7000 3.8700 2.4000 23 101 2.8300 2.5500
81 12 0.9200 2 19 86 2.4200 2.2600
82 12.7200 1.8100 2.2000 18.8000 86 2.2000 2.5300

3
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7

83 12.0800 1.1300 2.5100 24 78 2 1.5800


84 13.0500 3.8600 2.3200 22.5000 85 1.6500 1.5900
85 11.8400 0.8900 2.5800 18 94 2.2000 2.2100
86 12.6700 0.9800 2.2400 18 99 2.2000 1.9400
87 12.1600 1.6100 2.3100 22.8000 90 1.7800 1.6900
88 11.6500 1.6700 2.6200 26 88 1.9200 1.6100
89 11.6400 2.0600 2.4600 21.6000 84 1.9500 1.6900
90 12.0800 1.3300 2.3000 23.6000 70 2.2000 1.5900
91 12.0800 1.8300 2.3200 18.5000 81 1.6000 1.5000
92 12 1.5100 2.4200 22 86 1.4500 1.2500
93 12.6900 1.5300 2.2600 20.7000 80 1.3800 1.4600
94 12.2900 2.8300 2.2200 18 88 2.4500 2.2500
95 11.6200 1.9900 2.2800 18 98 3.0200 2.2600
96 12.4700 1.5200 2.2000 19 162 2.5000 2.2700
97 11.8100 2.1200 2.7400 21.5000 134 1.6000 0.9900
98 12.2900 1.4100 1.9800 16 85 2.5500 2.5000
99 12.3700 1.0700 2.1000 18.5000 88 3.5200 3.7500
100 12.2900 3.1700 2.2100 18 88 2.8500 2.9900

%analisamos las componentes principales(media,rango)


X = tlb{:,:};
X1 = double(X)

X1 = 178×13
103 ×
0.0142 0.0017 0.0024 0.0156 0.1270 0.0028 0.0031 0.0003
0.0132 0.0018 0.0021 0.0112 0.1000 0.0027 0.0028 0.0003
0.0132 0.0024 0.0027 0.0186 0.1010 0.0028 0.0032 0.0003
0.0144 0.0019 0.0025 0.0168 0.1130 0.0039 0.0035 0.0002
0.0132 0.0026 0.0029 0.0210 0.1180 0.0028 0.0027 0.0004
0.0142 0.0018 0.0025 0.0152 0.1120 0.0033 0.0034 0.0003
0.0144 0.0019 0.0025 0.0146 0.0960 0.0025 0.0025 0.0003
0.0141 0.0022 0.0026 0.0176 0.1210 0.0026 0.0025 0.0003
0.0148 0.0016 0.0022 0.0140 0.0970 0.0028 0.0030 0.0003
0.0139 0.0014 0.0023 0.0160 0.0980 0.0030 0.0032 0.0002

mu = mean(X1);
r = range(X1);
X2 = (X1-mu)./r;

4
%Ahora calcularemos las componentes principales(P,S,V)
[P,S,V] = pca(X2)

P = 13×13
0.1334 0.5509 -0.0838 0.0403 -0.2780 -0.1373 -0.2754 0.5550
-0.2485 0.2274 0.4920 -0.4860 -0.4129 -0.2131 0.3103 -0.0769
0.0007 0.1631 0.4030 0.2420 0.2864 -0.3010 -0.1718 -0.1235
-0.1778 -0.0798 0.4772 0.0817 0.4183 -0.1356 -0.2976 0.2708
0.0887 0.1882 0.0066 -0.0159 0.4709 -0.3125 0.5204 -0.0199
0.3951 0.0741 0.2531 0.0526 -0.0180 0.2836 -0.0665 -0.4134
0.4146 0.0010 0.1961 0.0270 0.0026 0.1470 -0.0507 -0.1565
-0.3331 0.0100 0.2860 0.7091 -0.3600 0.1972 0.2149 -0.0342
0.2529 0.0314 0.2283 -0.0766 0.1487 0.5031 0.4662 0.4835
-0.0923 0.5197 -0.0331 0.0263 0.2006 0.3880 -0.2126 -0.0369

S = 178×13
0.7063 0.2532 0.0241 -0.0133 -0.0266 -0.0744 0.0652 0.1385
0.4850 0.0088 -0.2805 -0.0759 -0.2386 -0.0719 0.0007 -0.1812
0.5212 0.1892 0.1962 0.0158 0.0450 0.0871 0.1256 0.0232
0.8216 0.5809 0.0811 -0.0122 -0.0048 0.0820 -0.0684 -0.1523
0.2025 0.0595 0.3002 0.1021 0.1058 -0.1168 0.0572 -0.0095
0.6082 0.4875 -0.0754 0.1842 -0.0687 0.0270 0.0740 -0.1135
0.5440 0.3002 -0.1051 0.0430 -0.2400 -0.0975 -0.0612 0.1048
0.4744 0.2982 -0.0028 0.0862 -0.0694 -0.3485 -0.0343 -0.0383
0.5004 0.3076 -0.2305 0.0244 -0.2197 0.0596 -0.0450 0.1579
0.6275 0.2063 -0.1141 -0.0597 -0.0497 0.0897 -0.1853 -0.0018

V = 13×1
0.2201
0.1025
0.0462
0.0401
0.0301
0.0252
0.0198
0.0130
0.0123
0.0122

%Examinamos la varianza de las componentes halladas


Vnorm = V/sum(V);
figure; hold on;
bar(Vnorm);
stairs(cumsum(Vnorm));
grid on; box on; hold off;
set(gca,'XTick',0:20:4000)
legend({'Component Variance','Cumulative Variance'},'FontSize',12)
xlabel('Component')

5
%Como observamos en la grafica 5 componentes pasan el 0.8
%de varianza

%visualizamos las caracteristicas de las componentes


figure;
scatter3(S(:,1),S(:,2),S(:,3))
xlabel('$P^1$','FontSize',16,'Interpreter','latex')
ylabel('$P^2$','FontSize',16,'Interpreter','latex')
zlabel('$P^3$','FontSize',16,'Interpreter','latex')
axis equal;

6
Tenga en cuenta que la primera columna de la data importada representa el tipo de vino mientras las 13
columnas restantes los atributos. Mayor información de la data se encuentra en el archivo wine.names.

%evaluamos al menos 3 modelos


%Analisamos los clasters:
%kmedoids
componentes = 5; %numero de componentes
%Analisamos el nuemero de clasters
[idx2,C2] = kmedoids(S(:,1:componentes),2,"Distance",'euclidean');
[silh2,h2] = silhouette(S(:,1:componentes),idx2,"sqEuclidean");

7
mean(silh2)

ans = 0.4916

[idx3,C3] = kmedoids(S(:,1:componentes),3,"Distance",'euclidean');
[silh3,h3] = silhouette(S(:,1:componentes),idx3,"sqEuclidean");

8
mean(silh3)

ans = 0.5655

[idx4,C4] = kmedoids(S(:,1:componentes),4,"Distance",'euclidean');
[silh4,h4] = silhouette(S(:,1:componentes),idx4,"sqEuclidean");

9
mean(silh4)

ans = 0.4773

[idx5,C5] = kmedoids(S(:,1:componentes),5,"Distance",'euclidean');
[silh5,h5] = silhouette(S(:,1:componentes),idx5,"sqEuclidean");

10
mean(silh5)

ans = 0.3541

[idx3,C3] = kmedoids(S(:,1:componentes),3,"Distance",'euclidean');
k1 = 3; % Number of clusters
clr = jet(k1);
figure;
scatter3(S(:,1),S(:,2),S(:,3),[],clr(idx3,:))
xlabel('$P^1$','FontSize',16,'Interpreter','latex')
ylabel('$P^2$','FontSize',16,'Interpreter','latex')
zlabel('$P^3$','FontSize',16,'Interpreter','latex')

11
%notamos que el mas optimo es el claster 3

% spectralcluster
%como el agrupamiento mas optimo es de 3
idxsp = spectralcluster(S(:,1:componentes),3);
[silhsp,hsp] = silhouette(S(:,1:componentes),idxsp,"sqEuclidean");

12
mean(silh2)

ans = 0.4916

%Visualisando los clasters


figure;
scatter3(S(:,1),S(:,2),S(:,3),[],clr(idxsp,:))
xlabel('$P^1$','FontSize',16,'Interpreter','latex')
ylabel('$P^2$','FontSize',16,'Interpreter','latex')
zlabel('$P^3$','FontSize',16,'Interpreter','latex')

13
%Ntamos la diferencia de agrupamiento

%Gaussian Mixture Model


gm = fitgmdist(S(:,1:componentes),3);
idxgm = cluster(gm,S(:,1:componentes));
[silhgm,hgm] = silhouette(S(:,1:componentes),idxgm,"sqEuclidean");

14
mean(silhgm)

ans = 0.4318

%Visualisando los clasters


figure;
scatter3(S(:,1),S(:,2),S(:,3),[],clr(idxgm,:))
xlabel('$P^1$','FontSize',16,'Interpreter','latex')
ylabel('$P^2$','FontSize',16,'Interpreter','latex')
zlabel('$P^3$','FontSize',16,'Interpreter','latex')

15
%De los metodos utilizado (algoritmo): el primero 0.5655, el segundo 0.4916 y el tercero 0.5031
%Podemos observar que el primero tiene mejor agrupacion que los demas,

16

También podría gustarte