KNN Miguel Cárdenas-Montes K-Nearest Neighbors es una de las técnicas más populares para la clasificación de objetos. Su baja complejidad matemática lo hacer muy útil como ejemplo de iniciación a los algoritmos supervisados. Objetivos: Conocer el uso práctico de la técnica de clasificación denominada KNN, sus fortalezas y debilidades, así como sus variantes. 1 KNN Este documento puede contener imprecisiones o errores. Por favor no lo utilice para citarlo como una fuente fiable. La técnica denominada K-Nearest Neighbors (K-vecinos más próximos), KNN, es una técnica de clasificación supervisada que se utiliza principalemente para clasificación, pero también se puede utilizar para regresión. La idea que fundamenta este algoritmo es que el nuevo objeto se clasificará en la clase más frecuente de sus K vecinos más próximos. Una representación gráfica se presenta en la figura 1. Para resolver los casos de empate, se puede añadir alguna regla heurística como puede ser el vecino más próximo. En caso de empate, será el vecino más próximo el que marque la clase del nuevo objeto. Figura 1: Ejemplo visual de clasificación para dos valores de K diferentes. Si K = 3, el círculo verde será clasificado como triángulo rojo. Por el contrario si K = 5, entonces el círculo verde será clasificado como cuadrado azul. Tal y como se ha expresado en la figura 1, la mayoría de de clases en los vecinos marcará la clase del objeto que está siendo clasificado. Si la elección es K = 1, la asignación será por el vecino más próximo. Esta elección hace que el algoritmo de clasificación sea muy sensible a los puntos ruidosos. Por ello se debe elegir un valor de K > 1. Por otro lado, un valor pequeño de K hará que el algoritmo sea muy rápido. Por el contrario, si el valor de K es muy grande, entonces se considerarán puntos muy alejados del objeto a clasificar. Por lo tanto se La complejidad computacional de KNN cuando es usado tal y como se ha presentado es de O[ D × N ]; siendo N el número de tuplas y D su dimensionalidad (número de caraterísticas). 2 m m incluirá información no relevante o errónea para el objeto que se está clasificando. En este caso, el algoritmo tendrá un sesgo hacia las clases más frecuentes o populares. Otra regla básica es escojer un valor del parámetro K impar de forma que se evite tanto como sea posible los empates. Otros algoritmos clasificatorios basan la clasificación de cada nuevo caso en dos tareas. Primero se induce el modelo clasificatorio (inducción), y posteriormente, se deduce la clase del nuevo caso (deducción). Sin embargo, en KNN ambas tareas están unidas (transducción). Figura 2: Ejemplo de datos (150 objetos) perteniences a tres clases. 4.5 4.0 3.5 3.0 2.5 2.0 4.5 Figura 3: El conjunto de datos de la figura 2 se utiliza para estudiar la variación del número de clasificaciones correctas. Consecutivamente se quita un objeto del conjunto, se entrena KNN con el conjunto restante y se predice la clase del elemento sustraído. Realizando esta operación para todos los puntos con diferentes valores de K se puede apreciar que el número de clasificaciones correctas depende del valor de K. Se observa como un valor par de K produce menos clasificaciones correctas que sus vecinos impares. Además se observa un rango de valores de K donde se producen los valores óptimos. 5.0 5.5 6.0 6.5 7.5 7.0 8.0 122 120 118 116 114 112 110 108 106 0 5 10 K vecinos 15 20 25 k n n 3 Figura 4: Variación del número de clasificaciones incorrectas en función del valor de K para los datos de la figura 2. De nuevo el mayor número de errores en la clasificación se obtiene para valores pares de K. Esta figura es la complementaria de la figura 3. 44 42 40 38 36 34 32 30 28 0 2 5 10 K vecinos 15 20 25 Variantes de KNN 2.1 KNN con Rechazo La idea de esta modificación es asegurar la clasificación con ciertas garantías. De esta forma se añaden criterios para la clasificación. Por ejemplo, si se tienen m clases, entonces para clasificar cualquier objeto, se require que haya una mayoría robusta de la clase ganadora. Por ejemplo, si hay 3 clases y se utiliza K = 9, se establece un umbral mínimo para la clase ganadora de 5 votos. 2.2 KNN con Distancia Media En esta variación se aplica idea de la más baja distancia media entre los K puntos utilizados en la clasificación. Por ejemplo, si se aplica esta variación al ejemplo de la figura 1 con K = 5, entonces el objeto se clasificará como triángulo rojo, a pesar de ser esta la clase minoritaria. 2.3 KNN con Distancia Mínima En esta variante se comienza por la selección de un caso por clase, siendo este el más cercano al baricentro de los elementos de dicha clase. Con este procedimiento, se produce una reducción del tamaño del problema desde el número de objetos al número de clases. Una vez que se tienen los baricentros de cada clase, se asigna el nuevo objeto a clasificar a la clase del baricentro más cercano. 2.4 KNN con Pesado de Casos Seleccionados En esta variante los K vecinos más próximos no se contabilizan en igualdad de conciones, sino que se tiene en cuenta la distancia de cada uno de estos elementos al nuevo objeto a clasificar. En KNN con rechazo los objetos pueden quedar sin clasificar sino tienen las garantías de una clasificación robusta. 4 m m Un peso posible en esta variante es el inverso de la distancia desde el nuevo objeto a cada K vecino. 2.5 KNN con Pesado de Variables En este caso, a algunas variables se les dan una mayor importancia respecto a las otras variables. Por ejemplo, el peso de cada variable se puede hacer a partir de la información mínima I ( Xi , C ) entre dicha variable Xi y la variable clase C. 3 Reducción de los Casos Iniciales El algoritmo KNN tiene en su complejidad algorítmica una elevada dependencia del tamaño del fichero de entrada. Para tratar de paliar esta dependencia se han propuestos métodos de reducción del fichero de entrada. Estas técnicas se pueden clasificar en técnicas de edición y en técnicas de clasificación. En las técnicas de edición, a partir del conjunto inicial de datos se produce un subconjunto reducido mediante la eliminación de algunos casos. Por el contrario, en las técnicas de condesación se obtiene un conjunto reducido de datos mediante una selección adecuada de los datos iniciales. 3.1 Edición de Wilson En esta técnica se entrena un algoritmo KNN con los datos resultantes de eliminar un solo objeto. Si la predicción de la clase del objeto extraído coincide con su clase verdadera, el objeto es conservado para el subconjunto final. Por el contrario, si no coincide la predicción con la clase verdadera, entonces el objeto es eliminado. 3.2 Condensación de Hart El método de condensación de Hart es dependiente del orden en que se hayan los objetos en el fichero de entrada. En esta técnica se promueve la selección de los casos más atípicos. Así siguiendo el orden en que se encuentra almacenados los objetos se construye un clasificador con los casos que se encuentran hasta ese punto del fichero de entrada. Con el clasificador se predice la clase del siguiente objeto. Si no coinciden ambas clases, entonces el objeto es conservado.