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
Respostas:
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.
fonte
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.
fonte
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
fonte
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.
fonte