Pregunta 1
Pregunta 1
Pregunta 1
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
1
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7
2
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7
3
winedat1 winedat2 winedat3 winedat4 winedat5 winedat6 winedat7
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
5
%Como observamos en la grafica 5 componentes pasan el 0.8
%de varianza
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.
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
13
%Ntamos la diferencia de agrupamiento
14
mean(silhgm)
ans = 0.4318
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