Qual algoritmo de classificação se deve usar depois de ver que t-SNE separa bem as classes?


12

Vamos supor que temos um problema de classificação e, inicialmente, queremos obter algumas informações dos dados e fazemos o t-SNE. O resultado do t-SNE separa muito bem as classes. Isso implica que é possível criar um modelo de classificação que também irá separar muito bem as classes (se t-SNE não separar bem, isso não implica muito).

Sabendo que o t-SNE se concentra na estrutura local e que pode separar bem as classes: Quais são os algoritmos de classificação que devem funcionar bem nesse problema? O Scikit sugere SVM com um kernel Gaussian RBF, mas quais são os outros?


3
(+1) K-vizinhos mais próximos pode ser uma escolha natural muito simples e fácil de implementar.
Ameba diz Reinstate Monica

Respostas:


7

Primeiro, uma resposta breve e depois um comentário mais longo:

Responda

As técnicas de PND calculam uma matriz de similaridade N × N no espaço de dados original e no espaço de incorporação de baixa dimensão, de modo que as semelhanças formem uma distribuição de probabilidade sobre pares de objetos. Especificamente, as probabilidades são geralmente dadas por um kernel Gaussiano normalizado, calculado a partir dos dados de entrada ou da incorporação. Em termos de classificação, isso imediatamente traz à mente métodos de aprendizado baseados em instâncias . Você listou um deles: SVMs com RBF e @amoeba listou kNN. Existem também redes de funções de base radial , nas quais não sou especialista.

Comente

Dito isto, eu seria duplamente cuidadoso ao fazer inferências em um conjunto de dados apenas olhando para gráficos de t-SNE. O t-SNE não se concentra necessariamente na estrutura local. No entanto, você pode ajustá-lo, ajustando o perplexityparâmetro, que regula (livremente) como equilibrar a atenção entre os aspectos locais e globais dos seus dados.

Nesse contexto, perplexityela mesma é uma facada no escuro sobre quantos vizinhos próximos cada observação pode ter e é fornecida pelo usuário. O artigo original declara: "O desempenho do t-SNE é bastante robusto às mudanças na perplexidade, e os valores típicos estão entre 5 e 50". No entanto, minha experiência é que tirar o máximo proveito do t-SNE pode significar analisar várias parcelas com diferentes perplexidades.

Em outras palavras, ajustando learning ratee perplexity, é possível obter gráficos 2-d muito diferentes para o mesmo número de etapas de treinamento e usando os mesmos dados.

Este artigo da Distill Como usar o t-SNE efetivamente fornece um ótimo resumo das armadilhas comuns da análise do t-SNE. Os pontos de resumo são:

  1. Esses hiperparâmetros (por exemplo, taxa de aprendizado, perplexidade) realmente importam

  2. Os tamanhos de cluster em um gráfico t-SNE não significam nada

  3. Distâncias entre clusters podem não significar nada

  4. O ruído aleatório nem sempre parece aleatório.

  5. Você pode ver algumas formas, às vezes

  6. Para topologia, você pode precisar de mais de um gráfico

Especificamente dos pontos 2, 3 e 6 acima, eu pensaria duas vezes antes de fazer inferências sobre a separabilidade dos dados, analisando gráficos de t-SNE individuais. Existem muitos casos em que você pode 'fabricar' plotagens que mostram clusters claros usando os parâmetros corretos.


1
Berkmeister: Tudo o que você escreveu faz sentido. Meu problema é bem fácil de descrever: quero tornar o modelo de classificação o melhor possível. Como posso usá-lo para melhorar a qualidade do modelo? Meu melhor palpite foi que o t-SNE pode 'sugerir' qual método pode ser relevante para um determinado problema.
Tomek Tarczynski

2
Por favor, consulte editar, os métodos de aprendizado baseados em instâncias seriam compatíveis com qualquer dica que você possa obter dos gráficos t-SNE.
precisa saber é o seguinte

2
(+1): Obrigado pela resposta, eu estava procurando exatamente por isso. Aceitarei a resposta dentro de dois dias.
Tomek Tarczynski
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.