¿Cuándo debo ir más allá de k vecino más cercano

9

Para muchos proyectos de aprendizaje automático que hacemos, comenzamos con el clasificador k Nearest Neighbour. Este es un clasificador de inicio ideal, ya que generalmente tenemos tiempo suficiente para calcular todas las distancias y el número de parámetros es limitado (k, métrica de distancia y ponderación)

Sin embargo, esto a menudo tiene el efecto de que nos quedamos con el clasificador knn ya que más adelante en el proyecto no hay espacio para cambiar a otro clasificador. Cuál sería una buena razón para probar un nuevo clasificador. Los obvios son las restricciones de memoria y tiempo, pero ¿hay casos en que otro clasificador realmente pueda mejorar la precisión?


fuente
¿Es esto puramente académico o debe usarse en la industria?
Dr. Rob Lang
1
La mayoría de nuestras aplicaciones se implementan en la industria (por lo que la huella de memoria y el tiempo de cálculo son problemas)

Respuestas:

3

k-NN generaliza en un sentido muy restrictivo. Simplemente usa antecedentes de suavidad (o suposición de continuidad). Esta suposición implica que los patrones que están cerca del espacio de características probablemente pertenezcan a la misma clase. K-NN no puede recuperar la regularidad funcional en la distribución de patrones.

Por lo tanto, requiere muestras de entrenamiento representativas, que pueden ser extremadamente grandes, especialmente en casos de espacios de características altamente dimensionales. Peor aún, estas muestras pueden no estar disponibles. En consecuencia, no puede aprender invariantes. Si los patrones pueden estar sujetos a algunas transformaciones sin cambiar sus etiquetas, y la muestra de entrenamiento no contiene patrones transformados de todas las formas admisibles, k-NN nunca reconocerá los patrones transformados que no se presentaron durante el entrenamiento. Esto es cierto, por ejemplo, para imágenes desplazadas o rotadas, si no están representadas en alguna forma invariable antes de ejecutar k-NN. k-NN ni siquiera puede abstraer de características irrelevantes.

Otro ejemplo algo artificial es el siguiente. Imagine ese patrón que pertenece a diferentes clases distribuidas periódicamente (por ejemplo, de acuerdo con el seno, si es menor que 0, entonces los patrones pertenecen a una clase, y es mayor, entonces los patrones pertenecen a otra clase). El conjunto de entrenamiento es finito. Por lo tanto, se ubicará en una región finita. Fuera de esta región, el error de reconocimiento será del 50%. Uno puede imaginar la regresión logística con funciones de base periódicas que funcionarán mucho mejor en este caso. Otros métodos podrán aprender otras regularidades en la distribución de patrones y extrapolar bien.

Entonces, si uno sospecha que el conjunto de datos disponible no es representativo, y se debe lograr la invariabilidad de algunas transformaciones de patrones, entonces este es el caso, en el que uno debe moverse más allá de k-NN.


fuente
Gracias por su respuesta (y gracias BartoszKP por intentar mejorarla). Es cierto que knn no puede encontrar patrones que requieran transformación (a menos que comience a usar una métrica de distancia extraña (e incorrecta)). Esa es una buena razón para probar otro clasificador, supongo que svm es una opción obvia entonces. No estoy lo suficientemente familiarizado con svm para decirlo, pero ¿no requeriría un conocimiento específico sobre el patrón que está buscando para definir el núcleo?
Si. La elección del núcleo dependerá de los patrones. El núcleo gaussiano tendrá propiedades similares al método k-NN. Otros núcleos estándar pueden parecer también inapropiados. Sin embargo, al menos, uno podría intentar usarlos.
Como lo implica @ Necro0x0Der, cualquier mejora a lo largo de estas líneas dependería de que el patrón (en el ejemplo seno, periodicidad) sea natural para la parametrización. Es decir, la parametrización (elección del núcleo) define la estructura (efectivamente, la métrica) del espacio de representación. Si puede determinar (quizás adivinando) una estructura apropiada por algún medio, intente parametrizar el patrón en consecuencia. Tenga en cuenta que al final, esto le permite a su clasificador encontrar fácilmente ciertos tipos de características relevantes.
3

Si estuviera limitado por la complejidad computacional, los árboles de decisión (Quinal, 1986) son difíciles de superar (especialmente cuando un marco ofrece la conversión directa del modelo DT a un conjunto de ifdeclaraciones, como Accord.NET ).

Para los datos de alta dimensión, la noción de distancia, en la que se basa k-NN, no tiene valor (Kriegel, Kröger, Zimek, 2009) (también: artículo de Wikipedia ). Por lo tanto, otros clasificadores, como SVM (Corter, Vapnik, 1995) o Random Forests (Breiman, 2001) , podrían funcionar mejor.

Referencias

BartoszKP
fuente
La alta dimensión no es un límite fijo, por supuesto, en la mayoría de los casos nuestras características son lo suficientemente expresivas como para que la distancia funcione. Por supuesto, este podría ser un punto importante. Quizás debería haber aclarado con un ejemplo. Digamos que tenemos un clasificador que tiene una precisión del 93%, esto es aceptable, pero ahora podemos intentar mejorar el clasificador o encontrar nuevas características. Todo depende de las nuevas características posibles y los datos, pero estaba buscando pautas sobre esta decisión.
@Rhand Me parece que es una decisión a nivel de gestión de proyectos. Si la solución actual es aceptable, ¿por qué jugar con ella? Es una pérdida de tiempo. Si no es aceptable, defina con mayor precisión qué desea mejorar (velocidad, precisión, etc.).
BartoszKP
No es solo la gestión de proyectos, la pregunta es cómo obtener la máxima precisión (esto está en mi pregunta) y qué dirección es la mejor para tomar. Sugieres svm y bosque aleatorio porque la dimensionalidad puede ser demasiado alta, esa es una posibilidad con la que podría experimentar para ver si la precisión mejora y ese es el tipo de respuesta que estaba buscando.
Bueno, esto por otro lado es una pregunta muy amplia. No hay reglas generales para que el clasificador X sea mejor que Y. Simplemente debe probar algunos clasificadores y luego realizar una validación cruzada para la selección del modelo, por ejemplo.
BartoszKP
3

kNN es útil para muestras de datos grandes

Sin embargo, sus desventajas son:

  1. Sesgado por el valor de k.
  2. Complejidad computacional
  3. Limitación de memoria
  4. Ser un algoritmo vago de aprendizaje supervisado
  5. Fácilmente engañado por atributos irrelevantes.
  6. La precisión de la predicción puede degradarse rápidamente cuando aumenta el número de atributos.

Por lo general, solo es efectivo si los datos de entrenamiento son grandes y el entrenamiento es muy rápido.

Iancovici
fuente
No estoy mirando el agrupamiento, sino la clasificación
@Rhand aquí vamos, gracias por la nota iliasfl
Iancovici