Cómo usar KNN para datos mixtos (categóricos y numéricos)

Puede usar KNN convirtiendo los valores categóricos en números.

Pero no está claro que debas hacerlo . Si las categorías son binarias, entonces codificarlas como 0–1 probablemente esté bien. Pero tan pronto como obtienes más de dos categorías, las cosas se vuelven problemáticas. Si los valores son “Bajo”, “Intermedio” y “Alto” (o más generalmente, si al menos tienen un orden natural), puede volver a codificarlos numéricamente como 1, 2, 3. Pero si los valores son “Rojo”, “Verde”, “Azul” (o más generalmente, algo que no tiene un orden intrínseco), luego simplemente codificarlos como enteros no funcionará. Una posibilidad en el caso es colocarlos igualmente espaciados alrededor de un círculo, ya que la distancia entre cualquier par de ellos es la misma. Con los valores [math] N> 3 [/ math], es posible que desee colocarlos en los vértices de un símplex regular en [math] N [/ math] -dimensional space. En otras palabras, codifíquelos como (1,0, …, 0), (0,1,0, …, 0), …, (0, 0, .., 0, 1). Entonces la distancia entre cualquier par de valores es la misma.

La clave para pensar es exactamente “¿cuál es la definición apropiada de distancia para mis datos?” Por definición, KNN usa distancias euclidianas. Dependiendo de la estructura de su combinación de datos numéricos y categóricos, esto puede o no ser razonable. Si terminas decidiendo que alguna otra noción de distancia tiene más sentido (por ejemplo, algo así como la distancia de Jaccard si todos tus datos son realmente binarios), entonces deberías mirar “particionando alrededor de medoides” (PAM) en lugar de KNN.

k-NN funciona naturalmente con atributos numéricos. ¿Qué pasa si tenemos atributos nominales?

Datos no numéricos

• Los valores de las características no siempre son números

Valores booleanos: sí o no, presencia o ausencia de un atributo

Categorías: colores, nivel educativo, género

• ¿Cómo influyen estos valores en el cálculo de la distancia?

Manejo de datos no numéricos

• Valores booleanos => convertir a 0 o 1

Se aplica a los atributos sí-no / presencia-ausencia

• Caracterizaciones no binarias.

Use progresión natural cuando corresponda; por ejemplo, nivel educativo: GS, HS, College, MS, PHD => 1,2,3,4,5

Asigne números arbitrarios pero tenga cuidado con las distancias; Por ejemplo, color: rojo, amarillo, azul => 1,2,3

Preprocesar su conjunto de datos

• Es posible que sea necesario procesar previamente el conjunto de datos para garantizar resultados de minería de datos más confiables

• Conversión de datos no numéricos a datos numéricos.

• Calibración de datos numéricos para reducir los efectos de rangos dispares. Particularmente cuando se usa la métrica de distancia euclidiana.

Espero que esto responda. Gracias.

Deje las características numéricas sin cambios.

Para las características categóricas, haga lo siguiente:

  • Supongamos que para alguna característica categórica F, tenemos K niveles. Convierta esta característica en variables binarias ficticias K – 1.

No olvide escalar sus datos. Además, la distancia euclidiana no siempre es la mejor métrica para usar.

Sí tu puedes,

Pasos:

  1. Enumere los datos categóricos, asigne números a las categorías, como cat = 1, dog = 2, etc.
  2. Realizar escalado de características. Para que la función de pérdida no esté sesgada a algunas características particulares.
  3. Hecho, ahora aplique el algoritmo de vecinos K-nearnest.

Use una codificación activa para los datos categóricos.

Si lo enumeraste, introducirías un sesgo sobre qué categorías están “más cerca”.

Considere el ejemplo de tres categorías, a, by c. Si les asignó el valor 1, 2 y 3, supondría implícitamente que la categoría a está más cerca de la categoría b que c en su espacio de características (distancia 1 en comparación con la distancia 2).

Gracias a todos por las respuestas, no quiero convertir categórico en numérico debido a la pérdida de información. ¿Es posible utilizar un enfoque combinado para calcular la distancia?

Quiero decir, usando la distancia numérica para la parte numérica y la distancia categórica para la parte categórica, luego combinándolas, después de dar el peso apropiado para cada una de ellas.

More Interesting

¿Cuáles son las mejores herramientas para la minería de datos en Internet? ¿Qué debo usar para configurar un evento automático / alerta de tendencia?

Cómo entrenar un clasificador SVM a partir de ejemplos de texto

¿Cuáles son las diferentes áreas donde los bancos pueden usar NLP (procesamiento del lenguaje natural) para mejorar las operaciones comerciales?

Cómo implementar la detección y clasificación de frutas de manzana usando MATLAB en una aplicación antroidea

Cómo entrenar clasificador lineal paso a paso con Caffe, utilizando las respuestas de la última capa completamente conectada del modelo AlexNet como características

¿Cuál es el lenguaje más utilizado para el aprendizaje automático en la industria?

¿Se está separando la ciencia de datos / aprendizaje automático de la informática tradicional?

¿Cómo puede un estudiante graduado de primer año en ciencias de la computación encontrar un trabajo en minería y análisis de datos después de graduarse?

¿Recomendaría un MBA de una escuela superior o un doctorado en Aprendizaje automático de una escuela superior?

Tengo problemas para mejorar el rendimiento de mi red neuronal a medida que aumento el número de unidades, ¿cuál podría ser el problema?

¿Cuál es la diferencia entre factorización y parametrización?

Word2vec: ¿Cómo puede el método de entrenamiento jerárquico soft-max de CBOW garantizar su autoconsistencia?

¿Cuáles son algunos de los desafíos y oportunidades sobresalientes en el análisis predictivo con respecto a la privacidad y la propiedad de los datos, el análisis de los datos del usuario, el escalado de algoritmos y los ecosistemas e intercambios de datos emergentes?

¿Cómo funcionan las redes de propuestas regionales (RPN)?

¿Alguien usa alguna vez una red neuronal media de capa softmax en lugar de al final?