Como agrupar em altas dimensões

Maneira automatizada de detectar o número de clusters

Nikolay Oskolkov Segue 24 de jul · 8 min ler Fonte da imagem

Este é o terceiro artigo da coluna Mathematical Statistics and Machine Learning for Life Sciences . Anteriormente, enfatizamos que scRNAseq é um promissor recurso de Big Data , discutido que o tSNE é uma técnica central de redução de dimensionalidade para scRNAseq e aprendeu como ajustar hyperparameters de tSNE . O próximo passo após o tSNE ter sido aplicado aos seus dados de scRNAseq é fazer uma análise de cluster para detectar limites entre as populações de células.

No entanto, o clustering sofre tanto das limitações dos algoritmos quanto da Maldição da Dimensionalidade , o que muitas vezes resulta em uma contradição entre a interpretação visual do gráfico tSNE e a saída da análise de cluster. Neste artigo, proponho uma forma automatizada de chegar a um acordo entre dimensionalidade redução e agrupamento para análise de dados scRNAseq.

Artefatos da Análise de Cluster

Um problema com o clustering scRNAseq é a discrepância entre o que vemos em uma plotagem de tSNE e o que a análise de cluster relata em termos de número de clusters e atribuição de células a clusters. Por exemplo, observamos claramente três clusters na figura abaixo e podemos até mesmo desenhar manualmente os limites entre os clusters. No entanto, a execução de um algoritmo de clustering pode resultar em artefatos como número errado de clusters ou atribuição incorreta de células a clusters , ou seja, quando um cluster uniforme é dividido em partes pelo algoritmo.

Resultados de agrupamento contradizem nossa interpretação visual, fonte de imagem

Além disso, tentar reproduzir resultados de artigos científicos pode ser confuso devido à falta de robustez dos algoritmos de clustering. Por exemplo, usando os dados de Kolodziejczyk et al., Cell Stem Cell 2015 , oito clusters são visíveis no gráfico tSNE, no entanto, o algoritmo de clustering usado no papel parece detectar apenas três clusters .

Contradição entre tSNE (esquerda) e agrupamento (direita) de Kolodziejczyk et al., Cell Stem Cell 2015

A contradição entre a redução de dimensionalidade e clustering tem uma natureza dupla. Por um lado, é notoriamente difícil definir uma distância entre os pontos de dados no espaço scRNAseq de alta dimensionalidade devido à Maldição da Dimensionalidade ; Por outro lado, os algoritmos de agrupamento geralmente usam suposições idealistas que não são válidas para os dados do mundo real.

Distanciamento euclidiano em altas dimensões

Matemática de altas dimensões é uma área ativa de pesquisa e eu vou dedicar um artigo separado para este tópico. Existem muitos fenômenos estranhos que surgem no espaço de alta dimensão. Uma delas é que a distância entre os pontos de dados e a origem do sistema de coordenadas cresce como uma raiz quadrada do número de dimensões D. Isso pode ser visto como os pontos de dados empobrecem o centro e concentram-se na casca do n- bola dimensional em grande D.

Pontos de dados ocupam a superfície e esgotam o centro da bola n em dimensões altas, fonte de imagem

Consequentemente, a distância média entre os pontos de dados diverge e perde seu significado, o que, por sua vez, leva à divergência da distância euclidiana , a distância mais comum usada para agrupamento. A distância de Manhattan é a melhor opção para o scRNAseq, mas também não ajuda totalmente em altas dimensões.

Suposições e limitações dos métodos de cluster

Apesar da Maldição da Dimensionalidade ser o maior obstáculo para a análise de cluster do scRNAseq, muitos algoritmos de clustering podem ter um desempenho ruim, mesmo em baixas dimensões, devido a suas suposições e limitações internas. Todos os métodos de agrupamento podem ser divididos em quatro grupos:

  1. Agrupamento hierárquico
  2. Cluster baseado em Centroid
  3. Cluster baseado em gráfico
  4. Clustering baseado em densidade

Biblioteca Python O Scikit-learn fornece uma coleção de métodos de clustering com uma excelente visão geral que enfatiza suas vantagens e desvantagens:

Visão geral dos métodos de clustering no scikit-learn Web page da biblioteca Python

O agrupamento hierárquico (aglomerativo) é muito sensível ao ruído nos dados. O armazenamento em cluster baseado em centróide (K-means, Gaussian Mixture Models) pode manipular somente clusters com simetria esférica ou elipsoidal .

O agrupamento baseado em gráfico (Spectral, SNN-cliq , Seurat ) é talvez mais robusto para dados de alta dimensão, pois usa a distância em um gráfico , por exemplo, o número de vizinhos compartilhados, que é mais significativo em altas dimensões em comparação com a distância euclidiana .

O agrupamento baseado em gráfico usa a distância em um gráfico: A e F têm 3 vizinhos compartilhados, a origem da imagem

No entanto, para construir o gráfico, este método ainda usa a distância euclidiana . Além disso, o número de clusters tem que ser implicitamente especificado a priori através dos hiperparâmetros de “resolução”. Alterar os hiperparâmetros pode facilmente resultar em menos ou mais clusters, o que é de alguma forma arbitrário e, portanto, bastante insatisfatório, pois não há uma maneira óbvia de definir uma função objetiva para o ajuste automatizado dos hiperparâmetros.

Fora de todos os algoritmos de agrupamento, apenas baseados em Densidade (Mean-Shift, DBSCAN, OPTICS, HDBSCAN) permitem clustering sem especificar o número de clusters . Os algoritmos funcionam através de janelas deslizantes, movendo-se em direção à alta densidade de pontos, ou seja, encontram, no entanto, muitas regiões densas presentes.

O agrupamento DBSCAN localiza regiões densas nos dados, origem da imagem

Além disso, esses algoritmos são independentes da forma de cluster e capturam qualquer topologia de dados scRNAseq. Abaixo mostrarei como podemos facilmente ajustar hiperparâmetros do algoritmo por meio da minimização de uma função objetiva.

Como ajustar hyperparameters de HDBSCAN

O clustering é um problema de aprendizado não supervisionado, o que significa que não conhecemos a verdade básica (número de clusters) e não podemos usar a validação cruzada para otimizar os hiperparâmetros de um algoritmo. No entanto, existe uma maneira de otimizar automaticamente os hiperparâmetros do HDBSCAN.

HDBSCAN , ou seja, DBSCAN Hierárquico, é um poderoso algoritmo de clustering baseado em densidade que é: 1) indiferente à forma dos clusters, 2) não requer o número de clusters a serem especificados, 3) robusto em relação a clusters com densidade diferente. Além disso, o HBDSCAN é muito atraente porque possui apenas um minipts hiperparâmetro, que é o número mínimo de pontos em um cluster. É relativamente rápido para grandes conjuntos de dados, detecta células periféricas e, para cada célula, reporta uma probabilidade de atribuição a um cluster . A fração de células com baixa probabilidade de atribuição a um cluster pode ser usada como uma função objetiva para otimizar os minPts, que, por sua vez, fornece o número ideal de clusters.

Abaixo, continuarei usando os Fibroblastos Associados ao Câncer (CAFs) do post anterior onde encontramos perplexidade ótima ( optPerp ) e número de Componentes Principais ( optPC ). Agora vamos executar o HDBSCAN na redução de dimensionalidade do tSNE para diferentes tamanhos mínimos de clusters, isto é, minPts variando de 3 a N_pt = 50. Para cada minPts, calculamos a função Score como uma fração de células com baixa confiança (probabilidade <5%) atribuída a um cluster, minimizando a função Score. Queremos reduzir o número de pontos de dados não atribuídos. Devido à estocasticidade interna, o tSNE muda de uma série para outra, portanto, para a robustez, repetimos o agrupamento N_iter = 50 vezes e calculamos a média dos resultados. Plotando a função de pontuação versus minPts revela um mínimo claro para um determinado tamanho de cluster mínimo, minPts.

Agora, depois de termos encontrado o tamanho mínimo ideal de clusters para nosso conjunto de dados, minPts, usaremos esse valor para a execução final de HDBSCAN em tSNE, isso nos dá o número de clusters, atribuições de células aos clusters, bem como células que não pode ser confiantemente atribuído a qualquer cluster, ou seja, células periféricas . Esta última é uma vantagem e uma peculiaridade do clustering baseado em densidade comparado a outros algoritmos, entretanto aqui, por simplicidade, classifiquei as células periféricas em seus clusters vizinhos mais próximos usando o classificador KNN . Observe que o tSNE foi executado N_tsne = 50 vezes e o gráfico mínimo de divergência de Kullback-Leibler foi selecionado como o gráfico final. Abaixo, mostro isso para alguns conjuntos de dados scRNAseq.

Resultados do agrupamento HDBSCAN no tSNE

Os resultados da aplicação de HDBSCAN a vários conjuntos de dados scRNAseq não parecem muito ruins, dado que esses gráficos foram obtidos fornecendo a matriz de expressão bruta apenas sem ajustes manuais dos parâmetros de clustering . O código para a função que usa apenas uma matriz de expressão scRNAseq, faz otimização automatizada de todos os hiperparâmetros e retorna um gráfico tSNE com resultados de clustering HDBSCAN no meu github .

Clustering em tSNE, PCs e matriz de expressão bruta

Executar o clustering em uma matriz de expressão bruta pode ser muito desafiador devido à Maldição da Dimensionalidade. Portanto, é quase sempre recomendado realizar qualquer tipo de redução de dimensionalidade antes de prosseguir com a análise de cluster. Aqui eu comparo o desempenho de 9 algoritmos de clustering populares no conjunto de dados CAFs: HDBSCAN (descrito acima), Kmeans , Gaussian Mixture Models (GMM) , Hierarchical Clustering , Spectral Clustering , SC3 , Bootstrap Consensus Clustering , SNN-cliq e Seurat . De fato, executar os algoritmos de agrupamento na matriz de expressão de CAFs bruta traz resultados insatisfatórios:

Clustering na matriz de expressão bruta

Apesar de todos os algoritmos falharem no clustering na matriz de expressão bruta, apenas o SC3 , que executa clustering de consenso entre diferentes algoritmos e métricas de distância, forneceu surpreendentemente boa atribuição de célula. Agora, aplicaremos os algoritmos de clustering aos PCs significativos encontrados pela permutação da matriz de expressão no post anterior .

Agora, o SC3 não teve um bom desempenho, o HDBSCAN também não foi perfeito. Em vez disso, a detecção da comunidade baseada em gráficos Seurat e o agrupamento hierárquico parecem ter o melhor desempenho. Finalmente, vamos aplicar os 9 algoritmos de agrupamento à representação de dimensão reduzida de tSNE dos dados de expressão de scRNAseq:

Apesar da plotagem tSNE ser uma redução da dimensionalidade 2D, muitos algoritmos, como K-means, Gaussian Mixture Models (GMM), cluster hierárquico, cluster espectral, clustering Bootsrap Consensus e SC3 não conseguem atribuir corretamente as células aos seus clusters. Os métodos HDBSCAN e de agrupamento baseados em gráficos (Seurat e SNN-cliq) parecem ter o melhor desempenho. No entanto, este último precisou de um ajuste manual de hiperparâmetros que não era necessário para o HDBSCAN devido ao procedimento de otimização automatizado descrito acima.

Resumo

Neste artigo, aprendemos que o agrupamento de dados scRNAseq de alta dimensão é desafiador devido à Maldição da Dimensionalidade e às limitações dos métodos de agrupamento . Frustrantemente, a maioria dos algoritmos de cluster requer que o número de clusters seja especificado a priori, o que é difícil de otimizar devido à inaplicabilidade da validação cruzada para clustering. No entanto, o HDBSCAN se destaca como um algoritmo com apenas um hiperparâmetro, que é bastante fácil de otimizar através da minimização da quantidade de células não atribuídas.

Nos comentários abaixo, deixe-me saber quais análises em Ciências da Vida lhe parecem especialmente misteriosas e tentarei abordá-las nesta coluna. Siga-me no Medium Nikolay Oskolkov , no Twitter @NikolayOskolkov e conecte-se no Linkedin e confira os códigos para este artigo no meu github . Eu pretendo escrever o próximo post sobre Como normalizar seus dados, você pode acabar no Espaço Simplex, onde as estatísticas tradicionais quebram , fique ligado.