SN-t com variáveis ​​binárias contínuas e binárias

10

Atualmente, estou investigando a visualização de dados de alta dimensão usando t-SNE. Eu tenho alguns dados com variáveis ​​binárias e contínuas mistas e os dados parecem agrupar os dados binários com muita facilidade. Obviamente, isso é esperado para dados em escala (entre 0 e 1): a distância euclidiana sempre será maior / menor entre as variáveis ​​binárias. Como lidar com conjuntos de dados binários / contínuos mistos usando t-SNE? Devemos soltar as colunas binárias? Existe um diferente metricque podemos usar?

Como um exemplo, considere este código python:

x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]

X = np.c_[x1, x2, x3]

# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph

então meus dados brutos são:

dados não tratados

onde a cor é o valor do terceiro recurso (x3) - em 3D os pontos de dados estão em dois planos (x3 = 0 plano e x3 = 1 plano).

Eu então executo t-SNE:

tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)

com o gráfico resultante:

tsne_data

e é claro que os dados foram agrupados por x3. Meu instinto é que, como uma métrica de distância não está bem definida para recursos binários, devemos descartá-los antes de executar qualquer t-SNE, o que seria uma pena, pois esses recursos podem conter informações úteis para a geração dos clusters.

FChm
fonte
11
Nota: Ainda estou interessado em ouvir comentários sobre isso e também sobre a aplicabilidade do UMAP neste espaço.
FChm 15/05/19
Obrigado pela recompensa, mais uma vez ainda interessado, mas não gastei muito tempo investigando isso para ser justo. Hoje, talvez tenha algum tempo para fazer uma pesquisa inicial e, se aplicável, adicionarei atualizações.
FChm
2
Eu encontrei esse problema na prática. Eu acho que não é específico para o tSNE, mas afetará igualmente qualquer algoritmo de aprendizado não supervisionado à distância (incluindo clustering). Eu também acho que a solução apropriada dependerá fortemente do que os recursos binários representam e de algum julgamento especializado sobre a importância deles. Então, eu estou procurando uma resposta que discuta várias situações possíveis. Tenho certeza de que não há uma solução única para todos.
Ameba

Respostas:

8

Isenção de responsabilidade: só tenho conhecimento tangencial sobre o assunto, mas como ninguém mais respondeu, tentarei

A distância é importante

Qualquer técnica de redução de dimensionalidade baseada em distâncias (tSNE, UMAP, MDS, PCoA e possivelmente outras) é apenas tão boa quanto a métrica de distância usada. Como o @amoeba indica corretamente, não pode haver uma solução única, você precisa ter uma métrica de distância que capture o que você considera importante nos dados, ou seja, que as linhas que você consideraria semelhantes têm uma pequena distância e as linhas que você usaria considerar diferente tem grande distância.

Como você escolhe uma boa métrica de distância? Primeiro, deixe-me fazer uma pequena diversão:

Ordenação

Muito antes dos dias de glória do aprendizado de máquina moderno, os ecologistas da comunidade (e provavelmente outros) tentaram fazer bons gráficos para a análise exploratória de dados multidimensionais. Eles chamam de ordenação de processos e é uma palavra-chave útil para pesquisar na literatura sobre ecologia, que remonta pelo menos aos anos 70 e continua forte hoje.

O importante é que os ecologistas tenham um conjunto de dados muito diversificado e lidem com misturas de características binárias, inteiras e com valor real (por exemplo, presença / ausência de espécies, número de amostras observadas, pH, temperatura). Eles passaram muito tempo pensando em distâncias e transformações para fazer as ordenações funcionarem bem. Eu não entendo muito bem o campo, mas, por exemplo, a revisão pela diversidade de Legendre e De Cáceres Beta como a variação dos dados da comunidade: coeficientes e particionamentos diferentes mostram um número impressionante de possíveis distâncias que você pode querer conferir.

Escala multidimensional

A ferramenta essencial para a ordenação é o dimensionamento multidimensional (MDS), especialmente a variante não métrica (NMDS), que eu encorajo você a tentar além do t-SNE. Eu não sei sobre o mundo Python, mas a implementação do R em metaMDSfunção do veganpacote faz muitos truques para você (por exemplo, executar várias execuções até encontrar duas semelhantes).

Isso foi contestado, veja os comentários: A parte interessante do MDS é que ele também projeta os recursos (colunas), para que você possa ver quais recursos impulsionam a redução da dimensionalidade. Isso ajuda você a interpretar seus dados.

Lembre-se de que o t-SNE foi criticado como uma ferramenta para obter entendimento, por exemplo, essa exploração de suas armadilhas - ouvi o UMAP resolver alguns dos problemas, mas não tenho experiência com o UMAP. Também não duvido que parte da razão pela qual os ecologistas usem o NMDS seja cultura e inércia, talvez o UMAP ou o t-SNE sejam realmente melhores. Sinceramente, não sei.

Estendendo sua própria distância

[0 0,1 1] independentemente do número de características, enquanto a magnitude da distância euclidiana reflete o número de características.

Uma palavra de cautela

O tempo todo, lembre-se de que, como você tem tantos botões para afinar, você pode facilmente cair na armadilha da afinação até ver o que queria ver. Isso é difícil de evitar completamente na análise exploratória, mas você deve ser cauteloso.

Martin Modrák
fonte
11
+1. Muitos bons pontos aqui, e eu gosto das referências à literatura mais antiga de "ordenação". Uma coisa que chamou minha atenção: "A parte legal do MDS é que ele também projeta os recursos (colunas), para que você possa ver quais recursos impulsionam a redução da dimensionalidade" - você tem certeza disso? Isso não é verdade, tanto quanto eu entendo; pelo menos não é mais verdade para o MDS do que para o t-SNE.
Ameba
@amoeba É aqui que entra meu conhecimento limitado :-) Tudo o que sei é que o método de plotagem padrão para metaMDSplotagens de amostras e recursos (veja, por exemplo, esta vinheta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Martin Modrák
Obrigado por suas respostas e idéias. Agora, estou me concentrando mais no UMAP, e acho que definir uma medida de similaridade como a distância de Jaccard talvez seja uma boa maneira de lidar com tipos de variáveis ​​mistas. Eu não usei o MDS, mas estou ciente disso. Vou ter que gastar algum tempo entendendo se é útil.
FChm 28/05/19
11
@ MartinModrák Eu não sei exatamente o que o veganpacote está fazendo lá, mas o MDS / NMDS é um método não linear e não paramétrico (exatamente como t-SNE), e não há uma maneira "interna" de corresponder os recursos originais às dimensões do MDS. Eu posso imaginar que eles estão computando correlações entre recursos originais e dimensões do MDS; Nesse caso, isso pode ser feito para qualquer incorporação, incluindo o t-SNE. Seria interessante saber o que exatamente veganfaz.
Ameba