¡Descarga Ejercicios Tema 8 Análisis Multivariante y más Ejercicios en PDF de Análisis Matemático solo en Docsity!
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Tema 8: Análisis Discriminante y Clasificación
Solución: El fichero vinos.txt contiene los datos de la Tabla 13 y el nuevo vino a
clasificar. Las primeras 20 filas corresponden al primer tipo de vino, las 15 filas siguientes
al segundo tipo de vino y la última fila es el nuevo vino a clasificar.
Los apartados (a) y (b) los hemos visto en clase de teoría. Ahora, vamos a usar la función
interna de Matlab classify.m, que permite realizar las clasificaciones mediante
distintos clasificadores.
Empezamos cargando los datos y preparando los grupos a los que ya sabemos que
pertenece cada tipo de vino:
data=load('vinos.txt');
X=data(1:35,:);
group=[ones(20,1); 2*ones(15,1)];
new=data(36,:);
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Podemos representar los 35 vinos y el nuevo a clasificar:
% representación de los objetos según el grupo y los nuevos a clasificar figure h1 = gscatter(X(:,1),X(:,2),group,'rb','v^',[],'off'); set(h1,'LineWidth',2) hold on; plot(new(:,1),new(:,2),'ok','LineWidth',2,'MarkerSize',6); legend('vino 1','vino 2','nuevo vino','Location','NW') xlabel('X1') ylabel('X2')
Clasificamos el nuevo individuo según el clasificador lineal de Fisher:
[class,err] = classify(new,X,group,'linear')
class = 2 err = 0.
El nuevo vino se asigna al segundo grupo y la probabilidad de clasificación errónea es de
Si además queremos ver las probabilidades “a posteriori” de asignar el nuevo vino a cada
uno de los grupos (regla de Bayes):
[class,err,POSTERIOR] = classify(new,X,group,'linear')
class = 2 err = 0. POSTERIOR = 0.0024 0.
En este caso, la regla de Bayes también asigna el nuevo vino al segundo grupo, dado que
la probabilidad “a posteriori” de que el nuevo vino pertenezca al segundo grupo es
0.9976 mucho mayor que la probabilidad de que pertenezca al primer grupo (0.0024).
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Empezamos clasificando el nuevo vino según el clasificador cuadrático:
[class,err, POSTERIOR] = classify(new,X,group,'quadratic')
class = 2 err = 0. POSTERIOR = 0.0082 0.
El nuevo vino se asigna al segundo grupo y la probabilidad de clasificación errónea es de
0.0583, que es mayor que la que se obtenía mediante el discriminador lineal (0.0250).
En este caso, la regla de Bayes también asigna el nuevo vino al segundo grupo, dado que
la probabilidad “a posteriori” de que el nuevo vino pertenezca al segundo grupo es
0.9918 mucho mayor que la probabilidad de que pertenezca al primer grupo (0.0082).
Sin embargo, esta probabilidad también es menor que la que se obtenía mediante el
clasificador lineal (0.9976).
Por tanto, para este conjunto de datos, el clasificador lineal da mejores resultados que
el clasificador cuadrático.
Como antes, vamos a visualizar las regiones de clasificación que establece el clasificador
cuadrático. Para ello, escribimos el siguiente código:
% representación de los objetos según el grupo y los nuevos a clasificar figure h1 = gscatter(X(:,1),X(:,2),group,'rb','v^',[],'off'); set(h1,'LineWidth',2) hold on; plot(new(:,1),new(:,2),'ok','LineWidth',2,'MarkerSize',6); legend('vino 1','vino 2','nuevo vino','Location','NW') xlabel('X1') ylabel('X2') % visualización de la clasificación [Y1,Y2] = meshgrid(linspace(12,15),linspace(200,1800)); Y1 = Y1(:); Y2 = Y2(:); [C,err,P,logp,coeff] = classify([Y1 Y2],[X(:,1) X(:,2)],group,'Quadratic'); hold on; gscatter(Y1,Y2,C,'rb','.',1,'off'); K = coeff(1,2).const; L = coeff(1,2).linear; Q = coeff(1,2).quadratic; % Function to compute K + Lv + v'Qv for multiple vectors % v=[x;y]. Accepts x and y as scalars or column vectors. f = @(x,y) K + L(1)x + L(2)y + Q(1,1)x.x + (Q(1,2)+Q(2,1))x.y + Q(2,2)y.*y; h2 = fimplicit(f,[12 15 200 1800]); set(h2,'Color','m','LineWidth',2,'DisplayName','Decision Boundary') axis([12 15 200 1800]) xlabel('X1') ylabel('X2') title('{\bf Quadratic Classifier; Wines Data}')
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Solución: El fichero iris.txt contiene los datos de la Tabla 14. Las primeras 50 filas
corresponden a la especie Iris setosa , las siguientes 50 filas a la especie Iris versicolor y
las últimas 50 filas corresponden a la especie Iris virginica.
Empezamos cargando los datos y preparando los grupos a los que ya sabemos que
pertenece cada flor:
X=load('iris.txt');
group=[ones(50,1); 2ones(50,1); 3ones(50,1)];
new=[4.6 3.6 1.0 0.
7.2 3.2 6.0 1.8];
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
V =
% calculamos las coordenadas de las nuevas flores a clasificar new2=new*V;
new2 = -6.5759 -7. 4.5642 -5. 7.3843 -6.
hold on; plot(new2(:,1),new2(:,2),'vk','LineWidth',2,'MarkerSize',6);
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Observad lo cercanas que están de los centroides las 3 nuevas flores a clasificar. Usando
el criterio geométrico (asignar el individuo al centroide más próximo), también
habríamos clasificado bien a las tres flores.
Podemos comprobarlo calculando las distancias euclideas de las nuevas flores a los tres
centroides, cuyas coordenadas son:
mY = -5.5025 -6. 3.9302 -5. 7.8877 -7.
squareform(pdist([mY; new2]))=
0 9.4797 13.3935 1.2614 10.1322 12. 9.4797 0 4.1474 10.6281 0.6671 3. 13.3935 4.1474 0 14.4682 3.6252 0. 1.2614 10.6281 14.4682 0 11.2866 13. 10.1322 0.6671 3.6252 11.2866 0 2. 12.8893 3.5215 0.7495 13.9905 2.9581 0
Las tres últimas filas (también las tres últimas columnas) de la matriz de distancias
corresponden a las distancias de las nuevas flores a cada una de las tres especies. La
primera flor se asigna al grupo 1, la segunda al grupo 2 y la tercera al grupo 3.
Solución: Vamos a clasificar, por ejemplo, el último individuo del fichero
cocodrilos.txt. Empezamos cargando los datos y preparando los grupos de individuos
y el nuevo individuo a clasificar:
data=load('cocodrilos.txt')
X=data(1:43,2:12); group=data(1:43,1); new=data(44,2:12);
Aplicamos e discriminador lineal de Fisher y vemos que este clasificador asigna el nuevo
cocodrilo al grupo 4, con una probabilidad de clasificación errónea de 0.148. La regla de
Bayes también asigna este individuo al grupo 4.
[class, err, posterior] = classify(new,X,group,'linear') class = 4 err =0. posterior = 0.0002 0.0000 0.0000 0.
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Mediante el criterio geométrico, el nuevo cocodrilo también se asigna al grupo 4 porque
es el centroide que le queda más cercano. Podemos comprobarlo calculando las
distancias euclideas del nuevo cocodrilo a los 4 centroides:
squareform(pdist([mY; new2]))=
La última fila (también la última columna) de la matriz de distancias corresponde a las
distancias del nuevo cocodrilo a cada uno de los 4 grupos. La menor distancia se
corresponde con el grupo 4.