Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicios Tema 8 Análisis Multivariante, Ejercicios de Análisis Matemático

Ejercicios Tema 8 Análisis Multivariante

Tipo: Ejercicios

2020/2021

A la venta desde 07/06/2022

alvaro-ruiz-26
alvaro-ruiz-26 🇪🇸

25 documentos

1 / 10

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Soluciones Ejercicios Análisis Multivariante
Aurea Grané Chávez
Grado en Estadística y Empresa
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,:);
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡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.