11 votos

kNN y clases desequilibradas

¿Cree que las clases desequilibradas son un gran problema para el vecino más cercano? Si es así, ¿conoces alguna forma inteligente de solucionarlo?

23voto

mjuarez Puntos 1357

Creo que la respuesta de Peter Smit más arriba confunde K nearest neighbor (KNN) y K-means, que son muy diferentes.

KNN es susceptible al desequilibrio de clases, como se describe bien aquí: https://www.quora.com/Why-does-knn-get-effected-by-the-class-imbalance

13voto

JosiahJohnston Puntos 61

El desequilibrio en el tamaño de las clases es un problema tanto teórico como práctico con KNN que se ha caracterizado en la literatura de aprendizaje automático desde al menos 2003. Esto es especialmente molesto cuando algunas clases tienen una baja ocurrencia en su conjunto de datos primario (por ejemplo: detección de fraude, detección de enfermedades, filtrado de spam).

Una búsqueda en Google Scholar 1 muestra varios artículos que describen el problema y las estrategias para mitigarlo mediante la personalización del algoritmo KNN:

  • la ponderación de los vecinos por la inversa de su tamaño de clase convierte los recuentos de vecinos en la fracción de cada clase que cae en sus K vecinos más cercanos
  • ponderación de los vecinos por sus distancias
  • utilizar una regla basada en el radio para reunir a los vecinos en lugar de los K más cercanos (a menudo implementada en los paquetes KNN)

También me han resultado útiles estos dos blogs para obtener información general sobre el desequilibrio en el tamaño de las clases.

0 votos

¿Significa esto con Sklearn KNeighborsClassifier que el uso del parámetro pesos = 'distancia' puede ayudar en caso de datos desequilibrados. Sabes cómo pasar la métrica matthews_corrcoef a un clasificador Sklearn KNeighborsClassifier?

0 votos

Puede ayudar, pero el éxito variará según el problema concreto. En los problemas en los que he trabajado, la ponderación 1/d suele ser insuficiente para los resultados que necesito.

2voto

KitCarrau Puntos 131

Me gustaría añadir una observación - knn es sensible a digamos el número de observaciones en el límite de la clase dada al número total de observaciones en esa clase. Si tienes tres clases con el mismo número de observaciones de la misma distribución pero con diferentes medias y la segunda clase está visiblemente nublada entre otras dos - su valor esperado está entre otras dos, entonces hay más errores de clasificación en la clase número dos. Pero algo así ocurre con todos los clasificadores.

0voto

Scott Cowan Puntos 156

En principio, las clases desequilibradas no suponen ningún problema para el algoritmo k-próximo.

Dado que el algoritmo no está influenciado de ninguna manera por el tamaño de la clase, no favorecerá a ninguna en función del tamaño. Intente ejecutar k-means con un valor atípico obvio y k+1 y verá que la mayoría de las veces el valor atípico tendrá su propia clase.

Por supuesto, con conjuntos de datos difíciles siempre es recomendable ejecutar el algoritmo varias veces. Esto es para evitar problemas debido a una mala inicialización.

2 votos

Estoy de acuerdo, pero de hecho me preocupaba el parámetro k: si el desequilibrio creará algunas diferencias entre clases en las densidades de observación en el espacio de características, la misma k tenderá a una esfera más pequeña en el espacio de características para una observación de una clase más densa. ¿No influirá entonces en la optimización del parámetro k?

3 votos

¿Podría aclarar si está escribiendo sobre KNN o K-means, ya que ambos se mencionan explícitamente?

5 votos

@peter-smit ¿es posible que estés confundiendo KNN y K-means?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X