Por que os dados mistos são um problema para os algoritmos de cluster baseado em euclidianos?


21

A maioria dos algoritmos clássicos de agrupamento e redução de dimensionalidade (agrupamento hierárquico, análise de componentes principais, médias médias, mapas auto-organizados ...) são projetados especificamente para dados numéricos, e seus dados de entrada são vistos como pontos em um espaço euclidiano.

É claro que isso é um problema, pois muitas perguntas do mundo real envolvem dados mistos: por exemplo, se estudarmos ônibus, a altura, o comprimento e o tamanho do motor serão números, mas também podemos estar interessados ​​em cores (variável categórica: azul / vermelho / verde ...) e classes de capacidade (variável ordenada: capacidade pequena / média / grande). Especificamente, podemos querer estudar esses diferentes tipos de variáveis ​​simultaneamente.

Existem vários métodos para estender algos de agrupamento clássicos a dados mistos, por exemplo, usando uma dissimilaridade de Gower para conectar-se a agrupamentos hierárquicos ou dimensionamento multidimensional, ou outros métodos que utilizam uma matriz de distância como entrada. Ou, por exemplo, esse método, uma extensão do SOM para dados mistos.

Minha pergunta é: por que não podemos simplesmente usar a distância euclidiana em variáveis ​​mistas? ou por que é ruim fazer isso? Por que não podemos simplesmente codificar dummy as variáveis ​​categóricas, normalizar todas as variáveis ​​para que elas tenham um peso semelhante na distância entre as observações e executar os algos usuais nessas matrizes?

É realmente fácil, e nunca foi feito, então suponho que esteja muito errado, mas alguém pode me dizer por quê? E / ou me dê alguns árbitros? obrigado


5
Você pode fazer tudo o que quiser com seus dados para representá-los como pontos no espaço euclidiano, mas o significado dos recursos pode desaparecer. O problema está no nível da escala de medição, não no nível do espaço. A escala ordinal deve ser adequadamente quantificada, a codificação fictícia não ajuda. A escala binária de sentido assimétrico (presente versus ausente) exige naturalmente outra métrica de distância além da distância euclidiana; mais o problema da interpolação (nenhuma média substantiva pode existir entre sim e não).
ttnphns

(cont.) O espaço euclidiano tem duas coisas: é contínuo (granulação fina) e permite qualquer direção. Nem todos os tipos de dados exigem ou cumprimentam esse espaço para acomodar divergências decorrentes da natureza dos dados.
ttnphns

O cluster hierárquico funciona com qualquer tipo de similaridade, btw. (exceto em alguns casos como Ward) - em particular, você pode usar, por exemplo, o coeficiente de Jaccard, que é significativo para alguns casos categóricos / binários.
Anony-Mousse -Reinstala Monica

Respostas:


5

Não se trata de não poder calcular algo .

Distâncias muito podem ser usadas para medir algo significativo . Isso falhará muito mais cedo com dados categoriais. Se alguma vez funcionar com mais de uma variável, isso é ...

Se você tem os atributos tamanho do sapato e massa corporal, a distância euclidiana também não faz muito sentido. É bom quando x, y, z são distâncias. A distância euclidiana é a distância da linha de visão entre os pontos.

Agora, se você codifica variáveis ​​dummy, que significado isso gera?

Além disso, a distância euclidiana não faz sentido quando seus dados são discretos.

Se existir apenas valores inteiros xey, a distância euclidiana ainda produzirá distâncias não inteiras. Eles não mapeiam de volta para os dados. Da mesma forma, para variáveis ​​codificadas por dummy, a distância não será mapeada de volta para uma quantidade de variáveis ​​dummy ...

Quando você planeja usar, por exemplo, o agrupamento k-means, não se trata apenas de distâncias, mas de calcular a média . Mas não existe uma média razoável para variáveis ​​codificadas por dummy, existe?

Finalmente, há a maldição da dimensionalidade . Sabe-se que a distância euclidiana diminui quando você aumenta o número de variáveis. Adicionar variáveis ​​codificadas por manequim significa que você perde o contraste da distância rapidamente. Tudo é tão semelhante quanto tudo o mais, porque uma única variável fictícia pode fazer toda a diferença.


3

No coração desses problemas de cluster baseados em métricas está a idéia de interpolação.

Adote o método que você acabou de citar e vamos considerar uma variável contínua, como peso. Você tem 100 kg e 10 kg em seus dados. Quando você vê um novo 99kg, a métrica permite que você se aproxime de 100kg - mesmo que você nunca tenha visto. Infelizmente, não há interpolação para dados discretos.

Outro argumento para esta pergunta é que não existe uma maneira natural de fazê-lo. Você deseja atribuir 3 valores em R e torná-los à distância igual entre cada par, isso seria impossível. Se você os designar em diferentes categorias e executar, digamos, PCA, você perderá as informações que eles refletem de fato a mesma categoria.


1
Obrigado! Entendo o problema de interpolação, mas em muitas aplicações isso não é problema (por exemplo, quando sabemos que os barramentos são verdes, vermelhos ou azuis e não existe outra cor em nosso conjunto de dados). E acho que existem maneiras fáceis de padronizar as variáveis ​​fictícias para que cada variável categórica tenha um "peso" semelhante ao de cada variável numérica (se as variáveis ​​numéricas também fossem padronizadas anteriormente). Ou pesos arbitrariamente atribuir às diferentes variáveis ...
Jubo

0

Um problema com valores categóricos não-ordenados é que, se você os codificar, forçará uma ordem e, portanto, um novo significado para as variáveis. Por exemplo, se você codificar azul como 1 e laranja como 2 e verde 3, implica que um padrão de dados com valor laranja está mais próximo de um padrão com valor verde que aquele com o valor azul.

Uma maneira de lidar com isso é torná-los novos recursos (colunas). Para cada valor distinto, você cria um novo recurso binário e o define como verdadeiro / falso (em outras palavras, o binário codifica os valores e transforma cada bit em uma coluna). Para cada padrão de dados desse novo conjunto de recursos, apenas um recurso terá o valor 1 e todos os outros 0. Mas isso geralmente não interrompe o algoritmo de treinamento para atribuir valores de centróide próximos de 1 a mais de um recurso. Esse curso pode causar problemas de interpretação, pois isso não faz sentido no domínio de dados.

Você não tem o mesmo problema com "classes de capacidade", ou seja, categorias ordenadas, pois nesse caso a atribuição de valores numéricos faz sentido.

E é claro que você usa características de natureza ou unidade de medida diferentes ou faixa de valores diferente, então sempre deve normalizar os 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


Isso é o que eu quis dizer com "codificação fictícia" para variáveis ​​categóricas, mas obrigado. E, no entanto, não concordo com sua afirmação sobre fatores ordenados ("classes de capacidade") porque não há como escolher entre, por exemplo. (1,2,3) ou (1.200), o que faria uma enorme diferença para um algoritmo baseado em distância.
Jubo #

0

A resposta é realmente bastante simples, só precisamos entender o que realmente é a informação em uma variável dummy. A idéia de uma variável dummy denota a presença ou ausência de níveis de fatores (valores discretos de uma variável categórica). O objetivo é representar algo não mensurável, não quantificável, armazenando as informações de estarem lá ou não. É por isso que uma variável dummy é expressa em dígitos binários, até os valores discretos da variável categórica que ela representa (ou menos 1).

Representar níveis de fator como valores 0/1 faz sentido apenas em uma equação analítica, como um modelo linear (este é um conceito fácil para quem pode interpretar os coeficientes dos modelos estatísticos). Em uma variável dummy, as informações da variável categórica subjacente são armazenadas na ordem dos bits. Ao usar esses bits como as dimensões para mapear uma amostra de entrada para um espaço de recurso (como no caso de uma matriz de similaridade / distância), as informações na ordem dos bits são completamente perdidas.


1
Obrigado! Na verdade, o que quero dizer é que variáveis ​​categóricas codificadas por dummy fazem (certo) sentido em uma distância euclidiana: se os valores são diferentes, adiciona 2 à distância ao quadrado, se não, adiciona 0. E você poderia normalizar os manequins em diferentes maneiras, levar em consideração o número de categorias ou suas probabilidades.
Jubo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.