FACULTA DE INFORMÁTICA. INGENIERÍA INFORMÁTICA PRÁCTICAS DE RECONOCIMIENTO DE FORMAS PRÁCTICA 1. Organización y Visualización de Conjuntos de Datos. TIEMPO: 2 horas Introducción En las Prácticas y Trabajos de la asignatura de Reconocimiento de Formas se utilizarán un conjunto de datos prácticos, o dataset, obtenidos de la bibliografía y de las bases de datos públicos de aprendizaje. Estas contienen conjuntos de datos aportados por docentes e investigadores para probar y comparar algoritmos. Cada dataset está contenido en un fichero ASCII con la siguiente organización a la que denominaremos como TIPO 1: La primera línea contiene el número de objetos o muestras de la base de datos. La segunda línea contiene el número de características o atributos del conjunto de datos. Todos son de naturaleza numérica. Cada línea sucesiva contiene un vector de datos numéricos con las características de una muestra y finaliza con un número entero adicional que es el ordinal de la clase a la que pertenece la muestra. En algunos casos no se incluye la información de la clase de la muestra. Esta situación se presenta en los conjuntos de datos para aprendizaje no supervisado o clustering. Este caso constituye el TIPO 0. Los conjuntos de aprendizaje que utilizaremos en el curso son los siguientes. Estarán localizables en el directorio ii-rf\DataSets: Iris.- Base de datos clásica en Reconocimiento de Formas correspondiente a tres tipos de flor de iris (setosa, versicolor, Virginica) definidos por cuatro características (sepal-length,sepalwidth, petal-length, petal-width). Iris1.- Base de datos obtenida a partir de Iris, donde se han unido dos clases (versicolor y virginica) de forma que el problema pasa a ser linealmente separable. Gauss2d.- Base de datos correspondiente a un problema bidimensional con dos clases. Una clase se distribuye según una normal de media (0.0,0.0) y desviación estándar igual a 1.0 en las ambas direcciones. La otra clase se distribuye según una normal de media (7.0,7.0) y desviación estándar 2.0 en cada dimensión. Gauss2d1.- Base de datos similar a la anterior pero centradas las clases en (0.0,0.0) y en (4.0,4.0), por lo que existe un cierto solape entre las muestras de las dos clases. Glass.- Base de datos de la UCI que contine 9 características y 6 clases. Buena para probar algoritmos de clustering. Fosil.- Este conjunto de datos consiste en 87 muestras de tres tipos de fósiles caracterizados por 6 características que se corresponden con diferente medidas morfológicas de los fósiles. British.- En esta base de datos se incluyen cuatro datos socio-económicos sobre ciudadanos británicos, que se han agrupado en cuatro categorías. La información sobre las categorías y los datos no se conocen. Pima.- Base de datos que contiene muestras que indican la ausencia (clase 1) o presencia (clase 2) de diabetes en mujeres de la tribu india Pima. La información sobre cada individuo viene dada por 8 características que incluyen desde resultados de análisis de sangre hasta la edad. Muestra1.- Conjunto de muestras para utilizar en comprobación de algoritmos de clustering, tipo 0, por tener tres grupos claramente diferenciados y pocas muestras. El espacio en este ejemplo es bidimensional y no contiene la indicación de la clase. Actividades Propuestas: 1. Construir una función MATLAB de lectura de los ficheros del dataset DataSet = leedataset(nombre,tipo) Donde DataSet es una estructura con los siguientes campos de información: DataSet.nobj: DataSet.natrib: DataSet.nclases: DataSet.frec(i): DataSet.dato(i,j): DataSet.clase(i): número de objetos o muestras del dataset. número de atributos o características. número de clases. frecuencia o número de aparición de muestras de una clase i. array con el datos del atributo o característica j de un objeto i. la clase de un objeto i. El argumento nombre corresponde al fichero del dataset y tipo debe valer 0 para los ficheros sin clases y 1 para los ficheros con clases. En el primer caso el índice de clase del array de datos solo tiene un valor como si se tratase de una clase única. Sugerencias: utilizar las funciones fopen, fscanf y fclose 2. Construir una función MATLAB que presente gráficamente los resultados de distribución de los datos de un dataset. Displaydataset(dataset) Displaydataset2(dataset,x,y) Displaydataset3(dataset,x,y,z) La primera función displaydataset presenta en 2D las primeras dos característica del dataset. La función displaydataset2 presenta en 2D las características que sean especificadas en sus argumentos mientras que displaydataset3 es análoga pero en 3D. Sugerencia: Utilizar las funciones plot(x,y,marca) y plot3(x,y,z,marca), donde marca es el tipo de signo que se imprime en la posición del datos, por ejemplo ‘ro’ para un circulo rojo o ‘b*’ para una estrella azul. Para mayor detalle consultar el manual de gráficos en MATLAB o utilizar el comando help. 3. Con estas herramientas realizar un análisis crítico sobre la “separabilidad” visual de las clases de algunas bases de datos