PRAC5: K Nearest Neighbor Asignatura: CLP: Clasificación de Patrones. Optativa de 2º Ciclo ETSETB UPC Profesores: Margarita Cabrera Josep Vidal UPC-TSC-D5 Abril-2007 CLP: PRAC5 1 2 10/04/2007 1 Objetivos de la práctica 4 ......................................................................................... 2 Base de Datos ZipCode ............................................................................................ 3 2.1 Características de la base de datos.................................................................... 3 2.2 Compresión de Imágenes ................................................................................. 4 2.3 Laboratorio ....................................................................................................... 5 3 Base de Datos MicroArray ....................................................................................... 6 3.1 Características de la base de datos.................................................................... 6 3.2 Laboratorio ....................................................................................................... 7 CLP: PRAC5 10/04/2007 2 1 Objetivos de la práctica 4 Objetivo 1 Se observa una base de datos con que se va a trabajar en las clases de laboratorios, obtenida a través del siguiente link: http://www-stat.stanford.edu/~tibs/ElemStatLearn/data.html Base ZIP Cada vector de 256 muestras representa una imagen de 16x16 pixels de un conjunto de 10 clases diferentes correspondientes a los 10 dígitos (0:::9) escritos a mano. Total de vectores: 7291 Dimensión: 256 Clases: 10 Base MicroArray Cada vector de 6830 muestras representa una medida de los genes contenidos en células correspondientes a 14 tipos diferentes de órganos infectados por cáncer. Total de vectores: 64 Dimensión: 6830 Clases: 14 Objetivo 2 Se aplica el método de clasificación KNN (consiste en comparar cada vector de la base de test, con K vectores de la base de entreno, y a partir de los más próximos se decide la clase). Cuando los vectores de la base son de gran dimensión (como nos ocurre con la base de datos dada es uno de los pocos métodos adecuados). CLP: PRAC5 10/04/2007 3 2 Base de Datos ZipCode Objetivos de la base de datos: Significado: Zone Improvement Plan. ZIP Code identifies a specific geographic delivery area. Esta base de datos se puede interpretar como una base de imágenes, aunque muy sencilla. 2.1 Características de la base de datos Esta es la información que los autores de la base de datos facilitan sobre la misma: Normalized handwritten digits, automatically scanned from envelopes by the U.S. Postal Service. The original scanned digits are binary and of different sizes and orientations; the images here have been deslanted and size normalized, resulting in 16 x 16 grayscale images (Le Cun et al., 1990). The data are in two gzipped files, and each line consists of the digit id (0-9) followed by the 256 grayscale values. There are 7291 training observations and 2007 test observations, distributed as follows: 0 1 2 3 4 5 6 7 8 9 Total Train 1194 1005 731 658 652 556 664 645 542 644 7291 Test 359 264 198 166 200 160 170 147 166 177 2007 or as proportions: 0 1 2 3 4 5 6 7 8 9 Train 0.16 0.14 0.1 0.09 0.09 0.08 0.09 0.09 0.07 0.09 Test 0.18 0.13 0.1 0.08 0.10 0.08 0.08 0.07 0.08 0.09 Alternatively, the training data are available as separate files per digit (and hence without the digit identifier in each row) The test set is notoriously "difficult", and a 2.5% error rate is excellent. These data were kindly made available by the neural network group at AT&T research labs (thanks to Yann Le Cunn). En el laboratorio únicamente se va a trabajar con la parte que los autores clasifican como de entrenamiento, ya que es suficientemente grande (7291 vectores). En el laboratorio, nosotros la dividiremos a su vez en • • Train Test Con diferentes proporciones según el método de clasificación que deseemos aplicar. CLP: PRAC5 10/04/2007 4 2.2 Compresión de Imágenes Con el objeto de reducir la dimensión de la base, se aplicarán en esta práctica, dos técnicas diferentes de transformación de imágenes: Transformada coseno y Transformada de Hadamard. Una vez en el dominio transformado se reducirán puntos de los vectores, pasando de dimensión 256 a 64 y a 16 y se evaluara el error de clasificación obtenido mediante: ldc, qdc y knn. Para más información sobre cada una de estas dos transformadas, consulte el fichero de transparencias: PS_imagen CLP: PRAC5 10/04/2007 5 2.3 Laboratorio PARTE 1.- Ejecute el fichero prac4_zip.m Observe la imagen representada por los números, así como las transformadas DCT y Hadamard. Evalúe los errores de clasificación mediante ldc y mediante knnc simultáneamente y a partir de las mismas bases de Entreno (Train) y de Test. Pruebe: k_clas=10 Vectores por clase en la base de entreno k_neig=1 Parámetro K k_clas=100 Vectores por clase en la base de entreno k_neig=10 Parámetro K k_clas=250 Vectores por clase en la base de entreno k_neig=25 Parámetro K Compare los dos métodos y comente los resultados. PARTE 2.- Ejecute el fichero prac5_ztl.m En este fichero se trabaja con una matriz de vectores que se han guardado en el dominio transformado. Ficheros de señal: Zip_dct64.mat (Matriz en el dominio transformado DCT. Se ha realizado una reducción a 64 puntos). Zip_had256.mat (Matriz en el dominio transformado Hadamard). Para la transformada DCT y para la transformada HADAMARD observe las imágenes resultantes y evalúe de nuevo la PARTE 1, incluyendo además el método de clasificación qdc, con N_dim=8 (Matrices de 8x8) N_dim=4 (Matrices de 4x4) N_dim=2 (Matrices de 2x2) PARTE 3.- Modifique el fichero prac5_ztl.m Con el objetivo de probar el método de Parzen (parzenc.m). Pruebe valores de sigma=0.5, 1, 1.5 con la base de datos de k_clas=10 Vectores por clase en la base de entreno y compare los resultados con el método kNearest. CLP: PRAC5 10/04/2007 6 3 Base de Datos MicroArray (Optativo) 3.1 Características de la base de datos Esta es la información que los autores de la base de datos facilitan sobre la misma: NCI microarray data Source and reference: http://genome-www.stanford.edu/nci60/ NCI microarray data 6830 genes missing values have been imputed via SVD 60 cell lines, labels are below 1: CNS 5 samples 2: RENAL 7 samples 3: BREAST 9 samples 4: NSCLC 9 samples 5: UNKNOWN 1 samples 6: OVARIAN 6 samples 7: MELANOMA 8 samples 8: PROSTATE 2 samples 9: LEUKEMIA 6 samples 10:K562B-repro 1 samples 11:K562A-repro 1 samples 12:COLON 7 samples 13:MCF7A-repro 1 samples 14:MCF7D-repro 1 samples Los 57 vectores de dimensión d=6830 muestras cada uno, presentan valores reales entre -10 y +10 aprox. Cada vector corresponde a una muestra de un órgano afectado por cáncer y proveniente de un paciente distinto. Observe los nombres de las 14 clases distintas de la tabla para saber a que tipo de cáncer diferente corresponde cada vector según la etiqueta numérica del 1 al 14. La información que se ha grabado en la coordenada de cada vector, corresponde a la presencia de un tipo determinado de gen. En total se analiza la presencia (+10) o ausencia (-10) de cada uno de los 6830 genes distintos. Para medir el nivel de presencia de cada gen, se utiliza el ADN (Ácido Desoxirribonucleico) correspondiente. El nombre de MicroArray corresponde a la técnica utilizada para extraer cada una de las muestras. El problema que existe con este tipo de bases de datos, radica principalmente en la enorme dimensionalidad de los vectores, que hace prohibitivo el uso de muchas de las técnicas de clasificación analizadas durante el curso. Debido a este motivo, esta técnica se utiliza para las prácticas, únicamente con el método K Nearest. CLP: PRAC5 10/04/2007 7 3.2 Laboratorio Ejecute el programa prac5_MA o LAB_prac5_MA. Se han seleccionado únicamente aquellas clases que tienen más de dos elementos por clase. Está preparado para trabajar con k_clas=4 Vectores por clase en la base de entreno k_neig=2 Parámetro K y calcula las distancias euclídeas entre diferentes clases. Observe los resultados y anote en fichero Word los errores obtenidos tanto para la base de train como para la base de test al variar: k_neig=1,2,3,4 A partir de las distancias obtenidas entre clases, vaya eliminado secuencialmente clases, dejando las clases más distantes entre sí, hasta obtener errores de test = 0 con k_neig=2. COMENTE LOS RESULTADOS EN EL DOCUMENTO: PRAC5 _claG*.doc