¿Por qué los datos mixtos son un problema para los algoritmos de clustering basados ​​en euclides?


21

La mayoría de los algoritmos clásicos de agrupación y reducción de dimensionalidad (agrupación jerárquica, análisis de componentes principales, k-means, mapas autoorganizados ...) están diseñados específicamente para datos numéricos, y sus datos de entrada se ven como puntos en un espacio euclidiano.

Por supuesto, este es un problema, ya que muchas preguntas del mundo real involucran datos que son mixtos: por ejemplo, si estudiamos autobuses, la altura, la longitud y el tamaño del motor serán números, pero también podría interesarnos el color (variable categórica: azul / rojo / verde ...) y clases de capacidad (variable ordenada: pequeña / mediana / gran capacidad). Específicamente, podríamos querer estudiar estos diferentes tipos de variables simultáneamente.

Existen varios métodos para extender los algos de agrupamiento clásicos a datos mixtos, por ejemplo, utilizando una diferencia de Gower para conectarse al agrupamiento jerárquico o al escalado multidimensional, u otros métodos que toman una matriz de distancia como entrada. O, por ejemplo, este método, una extensión de SOM a datos mixtos.

Mi pregunta es: ¿por qué no podemos usar la distancia euclidiana en variables mixtas? o por qué es malo hacerlo? ¿Por qué no podemos simplemente codificar ficticiamente las variables categóricas, normalizar todas las variables para que tengan un peso similar en la distancia entre las observaciones y ejecutar los algos habituales en estas matrices?

Es realmente fácil y nunca se hace, así que supongo que está muy mal, pero ¿alguien puede decirme por qué? ¿Y / o darme algunas referencias? Gracias


55
Puede hacer todo lo que quiera con sus datos para representarlos como puntos en el espacio euclidiano, pero el significado de las características puede desaparecer. El problema está en el nivel de la escala de medición, no en el nivel del espacio. La escala ordinal debe cuantificarse adecuadamente, la codificación ficticia no ayudará. La escala binaria de sentido asimétrico (presente vs ausente) naturalmente requiere otra distancia métrica que la distancia euclidiana; más el problema de la interpolación (no puede existir una media sustancial entre sí y no).
ttnphns

(cont.) El espacio euclidiano se trata de dos cosas: es continuo (de grano fino) y permite cualquier dirección. No todos los tipos de datos requieren o saludan ese espacio para acomodar las diferencias que surgen de la naturaleza de los datos.
ttnphns

La agrupación jerárquica funciona con cualquier tipo de similitud, por cierto. (excepto en algunos casos como Ward), en particular, podría usar, por ejemplo, el coeficiente Jaccard, que es significativo para algunos casos categoriales / binarios.
Anony-Mousse -Reinstalar a Monica el

Respuestas:


5

No se trata de no poder calcular algo .

Las distancias se pueden usar mucho para medir algo significativo . Esto fallará mucho antes con datos categoriales. Si alguna vez funciona con más de una variable, es decir ...

Si tiene los atributos talla de calzado y masa corporal, la distancia euclidiana tampoco tiene mucho sentido. Es bueno cuando x, y, z son distancias. Entonces la distancia euclidiana es la distancia de la línea de visión entre los puntos.

Ahora, si codifica variables ficticias, ¿qué significado produce esto?

Además, la distancia euclidiana no tiene sentido cuando sus datos son discretos.

Si solo existen valores enteros x e y, la distancia euclidiana seguirá produciendo distancias no enteras. No se asignan de nuevo a los datos. Del mismo modo, para variables codificadas ficticias, la distancia no se correlacionará con una cantidad de variables ficticias ...

Cuando planea utilizar, por ejemplo, el agrupamiento de k-medias, no se trata solo de distancias, sino de calcular la media . Pero no hay una media razonable en las variables codificadas ficticias, ¿verdad?

Finalmente, está la maldición de la dimensionalidad . Se sabe que la distancia euclidiana se degrada cuando aumenta el número de variables. Agregar variables codificadas simuladas significa que pierde el contraste de distancia bastante rápido. Todo es tan similar como todo lo demás, porque una sola variable ficticia puede marcar la diferencia.


3

En el corazón de estos problemas de agrupamiento basados ​​en métricas está la idea de la interpolación.

Tome el método que acaba de citar y permítanos considerar una variable continua como el peso. Tiene 100 kg y tiene 10 kg en sus datos. Cuando vea un nuevo 99 kg, la métrica le permitirá acercarse a 100 kg, aunque nunca lo haya visto. Desafortunadamente, no existe una interpolación para datos discretos.

Otro argumento para esta pregunta es que no hay una forma natural de hacerlo. Desea asignar 3 valores en R y hacerlos a la misma distancia entre cada par, esto sería imposible. Si los asigna en diferentes categorías y ejecuta, digamos PCA, pierde la información que reflejan, de hecho, la misma categoría.


1
¡Gracias! Entiendo el problema de la interpolación, pero en muchas aplicaciones esto no es un problema (por ejemplo, cuando sabemos que los buses son verdes, rojos o azules, y no existe otro color en nuestro conjunto de datos). Y creo que hay formas fáciles de estandarizar las variables ficticias para que cada variable categórica tenga un "peso" similar al de cada variable numérica (si las variables numéricas también se estandarizaron de antemano). O para asignar arbitrariamente pesos a las diferentes variables ...
jubo

0

Un problema con los valores categóricos desordenados es que si los codifica de forma ficticia, fuerza un orden y, por lo tanto, un nuevo significado para las variables. Por ejemplo, si codifica azul como 1 y naranja como 2 y verde 3, implica que un patrón de datos con valor naranja está más cerca de un patrón con valor verde que el que tiene el valor azul.

Una forma de manejar esto es hacerles nuevas características (columnas). Para cada valor distinto, crea una nueva característica binaria y la establece en verdadero / falso (en otras palabras, el binario codifica los valores y convierte cada bit en una columna). Para cada patrón de datos de este nuevo conjunto de características, solo una característica tendrá el valor 1 y todas las demás 0. Pero esto generalmente no detiene el algoritmo de entrenamiento para asignar valores de centroide cercanos a 1 a más de una característica. Por supuesto, esto puede causar problemas de interpretación porque esto no tiene sentido en el dominio de datos.

No tiene el mismo problema con las "clases de capacidad", es decir, las categorías ordenadas, ya que en ese caso la asignación de valores numéricos tiene sentido.

Y, por supuesto, si utiliza características de diferente naturaleza o unidad de medida o un rango diferente de valores, siempre debe normalizar los valores.

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409


Eso es lo que quise decir con "codificación ficticia" para variables categóricas, pero gracias. Y por cierto, no estoy de acuerdo con su afirmación sobre los factores ordenados ("clases de capacidad") porque no hay forma de elegir, por ejemplo. (1,2,3) o (1,2,100), lo que marcaría una gran diferencia para un algoritmo basado en la distancia.
jubo

0

La respuesta es en realidad bastante simple, solo necesitamos entender cuál es realmente la información en una variable ficticia. La idea de una variable ficticia denota la presencia o ausencia de niveles de factores (valores discretos de una variable categórica). Está destinado a representar algo no medible, no cuantificable, almacenando la información de si está allí o no. Es por eso que una variable ficticia se expresa en dígitos binarios, tantos como los valores discretos de la variable categórica que representa (o menos 1).

Representar los niveles de factores como valores 0/1 tiene sentido solo en una ecuación analítica, como un modelo lineal (este es un concepto fácil para aquellos que pueden interpretar los coeficientes de los modelos estadísticos). En una variable ficticia, la información de la variable categórica subyacente se almacena en el orden de los bits. Cuando se usan esos bits como dimensiones para mapear una muestra de entrada a un espacio de características (como en el caso de una matriz de similitud / distancia), la información en el orden de los bits se pierde por completo.


1
¡Gracias! En realidad, mi punto es que las variables categóricas codificadas como ficticias tienen (cierto) sentido en una distancia euclidiana: si los valores son diferentes, agrega 2 a la distancia al cuadrado, si no, agrega 0. Y podría normalizar las variables ficticias en diferentes maneras, para tener en cuenta el número de categorías o sus probabilidades.
jubo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.