METODOS MATEMATICOS EN CIENCIAS DE LA COMPUTACION
05-06
UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO
UNIBERTSITATEA, UPV-EHU

PRACTICA II: RECONOCIMIENTO DE PATRONES CON
WEKA
Tareas a realizar para el Tema 14
(Clustering):
- WEKA ofrece distintas posibilidades de
aplicar algoritmos de "clustering" (o clasificación no-supervisada) sobre tus
datos. Las
técnicas de "clustering" se utilizan en bases de datos no supervisadas en las que la
variable clase no existe (o no se ha definido). Su
objetivo fundamental es el descubrimiento ("class discovery")
de dichas clases o estructuras diferenciadas del problema,
para posteriormente poder “bautizarlas”: descubrir un nuevo subtipo de
tumor, un grupo homogéneo de ciudadanos que responde a una encuesta
generalista... Esto es, la base de datos se ha
recolectado-diseñado sin que hubiera una variable especial (o clase) a
predecir (lo contrario a las bases de datos con las que has trabajado, en las
que la clase está perfectamente definida para cada caso). "Todas las variables son iguales..."
Es común en los sociólogos, tras realizar una encuesta
generalista en la que se preguntan diversas cuestiones acerca de una temática
(medioambiente, pautas de consumo, preferencias políticas...), crear
grupos-"clusters" homogéneos de encuestados, y "bautizarlos-resumirlos"...
Ten en cuenta que todas las bases de datos
que os he ofrecido para WEKA se han confeccionado de forma "supervisada", con
el objetivo final de que la última variable de ellas es especial, y su
correcta predicción causa interés. En un principio, no tiene interés realizar
tareas de "clustering" sobre una base de datos que ya contiene el valor de la
variable clase para cada instancia. Esto es, "no hay
clases que descubrir, ya están descubiertas y aparecen al final de cada
caso..."
Aunque la base de datos que estás
utilizando contiene ya la variable clase para cada instancia, WEKA permite
realizar tareas de clustering en las que la variable clase sea omitida
y no tome parte en la creación de los ‘clusters’: indaga qué
opción del interfaz hay que pulsar para que eso se haga así. No interesa, no
tiene sentido, que los "clusters" sean creados con dicha variable clase
tomando parte en el proceso de "clustering": no debe aparecer la clase en la
información-creación de los centroides...
Podríamos indagar si los
"clusters" o grupos creados por medio de técnicas de "clustering" (sin
utilizar la clase) se "acercan" a ella, si "descubren las clases verdaderas
del problema"... (entiende esto último en un sentido amplio). Hazlo así para 3 valores distintos del
número de ‘clusters’ (grupos) en el algoritmo no-supervisado K-Means,
realizando también el siguiente estudio para cada valor del número de
‘clusters’:
o fíjate
en la información acerca
de los centroides de cada ‘cluster’: en base a lo anterior, no debería
aparecer la variable clase en dichos centroides, en su creación...
o ya que no ha tomado parte en la
construcción de los ‘clusters’, observa la
distribución de la variable clase a lo largo de éstos.
Teniendo esta información en cuenta, sugiere cuál es el número de ‘clusters’ que
induce una distribución más ‘pura’-‘idónea’ de las clases de las instancias,
el que se "acerca más" a las clases verdaderas y ya conocidas del
problema, ya que querríamos que en un ‘cluster’ concreto
haya el mayor número posible de instancias de una única clase, y el menor número
posible de casos de las demás clases. Informalmente: ¿cómo-cuánto se
“acoplan” las clases reales del problema a los clusters descubiertos? De
esta manera parecería que estaríamos "descubriendo" las clases verdaderas del
problema...
Las salidas que obtendrás serán de este tipo (lo he hecho para el
problema "Iris", con dos "clusters"). Personalmente no me parece correcto que
muestre la última línea: no creo que haya nada, en un proceso de "clustering",
que "bienclasificar" o "malclasificar". Date cuenta que en el "clustering" no
existen conceptos como validación cruzada, método H, estimación del porcentaje
de bien clasificados... La primera matriz no es una matriz de confusión, pero sí
que nos indica la distribución de las clases verdaderas del problema a lo largo
de los "clusters" construidos:
0 1 <-- assigned to cluster
2
48 | Iris-setosa
45 5 | Iris-versicolor
50 0 |
Iris-virginica
Incorrectly clustered instances : 52.0 34.6666
%