Crea una medida de similitud manual

Para calcular la similitud entre dos ejemplos, debes combinar todos los datos de atributos de esos dos ejemplos en un solo valor numérico.

Por ejemplo, considera un conjunto de datos de zapatos con una sola característica: talla de calzado. Para calcular qué tan similares son dos zapatos, calcula la diferencia entre sus tamaños. Cuanto más pequeña sea la diferencia numérica entre los tamaños, mayor será la similitud entre los zapatos. Esta medida de similitud hecha a mano se denomina medida de similitud manual.

¿Qué pasaría si quisieras encontrar similitudes entre los zapatos mediante el tamaño y el color? El color es datos categóricos y es más difícil de combinar con los datos numéricos de tamaño. Observaremos que a medida que los datos se vuelven más complejos, crear una medida de similitud manual se vuelve más difícil. Cuando tus datos se vuelvan lo suficientemente complejos, no podrás crear una medida manual. Es entonces cuando cambias a una medida de similitud supervisada, en la que un modelo de aprendizaje automático supervisado calcula la similitud.

Dejaremos la medida de similitud supervisada para más adelante y nos enfocaremos en la medida manual. Por ahora, recuerda que cambias a una medida de similitud supervisada cuando tienes problemas para crear una medida de similitud manual.

Para comprender cómo funciona una medida de similitud manual, veamos nuestro ejemplo de calzado. Supongamos que el modelo tiene dos atributos: tamaño del calzado y datos del precio del calzado. Dado que ambos atributos son numéricos, puedes combinarlos en un solo número que represente la similitud de la siguiente manera.

  • Talla (s): Es probable que la talla de calzado sea una distribución gaussiana. Confirma esto. Luego, normaliza los datos.
  • Precio (p): Es probable que los datos sean una distribución de Poisson. Confirma esto. Si tienes datos suficientes, conviértelos en cuantiles y escala a \([0,1]\).
  • Para combinar los datos, usa el error cuadrático medio de la raíz (RMSE). Aquí, la similitud es \(\sqrt{\frac{s^2+p^2}{2}}\).

Para obtener un ejemplo simplificado, calculemos la similitud de dos zapatos con los tamaños de EE.UU. 8 y 11, y los precios de 120 y 150. Debido a que no tenemos datos suficientes para comprender la distribución, simplemente escalaremos los datos sin normalizar ni usar cuantiles.

AcciónMétodo
Escala el tamaño. Suponga que existe un máximo de 20 zapatos. Divida 8 y 11 por el tamaño máximo de 20 para obtener 0,4 y 0,55.
Escala el precio. Divide 120 y 150 por el precio máximo de 150 para obtener 0.8 y 1.
Busca la diferencia de tamaño. \(0.55 - 0.4 = 0.15\)
Busca la diferencia en el precio. \(1 - 0.8 = 0.2\)
Busque el RMSE. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

De manera intuitiva, tu similitud medida debería aumentar cuando los datos de los atributos se vuelvan similares. En cambio, la similitud medida disminuye. Haz que la similitud medida siga tu intuición restando a 1.

\[\text{Similarity} = 1 - 0.17 = 0.83\]

En general, puedes preparar los datos numéricos como se describe en Preparar datos y, luego, combinar los datos mediante la distancia euclidiana.

¿Qué sucede si tiene datos categóricos? Los datos categóricos pueden ser los siguientes:

  • Valor único (univalente), como el color del automóvil ("blanco" o "azul", pero nunca ambos)
  • Valores múltiples (multivalente), como el género de una película (puede ser "acción" y "comedia" al mismo tiempo, o solo "acción")

Si los datos univalentes coinciden, la similitud es 1; de lo contrario, es 0. Es más difícil lidiar con los datos multivalentes. Por ejemplo, trabajar con géneros musicales puede ser un desafío. Para solucionar este problema, supongamos que a las películas se les asignan géneros de un conjunto fijo de géneros. Calcula la similitud mediante la proporción de valores comunes, llamada Similitud de Jaccard.

Ejemplos:

  • [“comedia”,“acción”] y [“comedia”,“acción”] = 1
  • [“comedia”,“acción”] y [“acción”] = 1⁄2
  • [“comedia”, “acción”] y [“acción”, “drama”] = 1⁄3
  • [“comedia”,“acción”] y [“no ficción”,“biográfica”] = 0

En la siguiente tabla, se proporcionan algunos ejemplos más de cómo manejar los datos categóricos.

Ejemplos
Código postal Los códigos postales que representan áreas cercanas tienen una mayor similitud. A fin de codificar con exactitud la información necesaria para calcular esta similitud, puedes convertir los códigos postales en latitud y longitud. Para un par de códigos postales, calcula la diferencia entre su latitud y su longitud por separado. Luego, agrega las diferencias para obtener un solo valor numérico.
Color Supongamos que tienes datos de colores como texto. Convierte los valores textuales en valores RGB numéricos. Ahora puedes encontrar la diferencia en rojo, verde y azul para dos colores y combinar las diferencias en un valor numérico mediante la distancia euclidiana.

En general, la medida de similitud debe corresponder directamente a la similitud real. Si tu métrica no lo hace, no codifica la información necesaria. En el ejemplo anterior, los códigos postales se convirtieron en latitud y longitud porque los códigos postales por sí solos no codificaron la información necesaria.

Antes de crear tu medida de similitud, procesa tus datos con cuidado. Aunque los ejemplos de esta página se basaban en un conjunto de datos pequeño y simple, la mayoría de los conjuntos de datos reales son mucho más grandes y complejos. Recuerda que los cuantiles son una buena opción predeterminada para procesar datos numéricos.