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 metric
que 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:
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:
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.
Respostas:
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
metaMDS
função dovegan
pacote 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
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.
fonte
metaMDS
plotagens de amostras e recursos (veja, por exemplo, esta vinheta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )vegan
pacote 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 exatamentevegan
faz.