Seleção de recursos para problemas de cluster

9

Estou tentando agrupar conjuntos de dados diferentes usando algoritmos não supervisionados (clustering). O problema é que tenho muitos recursos (~ 500) e uma pequena quantidade de casos (200-300).

Até agora, costumava fazer apenas problemas de classificação para os quais sempre rotulava dados como conjuntos de treinamento. Lá, usei algum critério (por exemplo, random.forest.importance ou information.gain) para pré-seleção dos recursos e, em seguida, usei uma seleção sequencial para a frente de diferentes alunos para encontrar os recursos relevantes.

Agora vejo que, no caso de aprendizado não supervisionado, não tenho nenhum critério para pré-seleção nem posso usar a seleção direta sequencial (pelo menos não no pacote mlr).

Eu queria saber se eu poderia fazer uma análise de componentes principais antes para encontrar um pequeno número de recursos a serem seguidos no meu algoritmo de clustering. Ou você tem alguma outra ideia?

obrigado

editar:

Ok, então, depois de algumas pesquisas online, posso atualizar minha pergunta um pouco: Antes de tudo, li alguns artigos que desencorajam o uso do PCA antes de agrupar algoritmos, devido a dois motivos:

  • Os PCs são funções de todos os recursos, por isso é difícil relacionar o resultado ao conjunto de dados inicial e, portanto, é mais difícil interpretar

  • Além disso, se você tiver o problema de que, na verdade, apenas uma fração muito pequena de seus recursos é útil para fazer o agrupamento, não se diz que esses recursos também estejam descrevendo a maior variação entre as amostras (que é o que os PCs fazem)

Então o PCA está fora da mesa ...

Agora, estou de volta à minha ideia inicial de fazer uma seleção sequencial direta para cluster.

Que medida de desempenho você recomendaria? (Pensei no Dunn-Index) Qual algoritmo de agrupamento levaria a agrupamentos mais ou menos do mesmo tamanho? (para agrupamento hierárquico, geralmente recebo um agrupamento com um único outlier e outro com todo o resto -> para que eu precisasse de algo que de alguma forma proteja contra outliers)

Espero que vocês possam me ajudar...

JohnDoe
fonte
Florestas aleatórias podem ser aplicadas em problemas não supervisionados. E acho que você ainda pode extrair alguns recursos informativos no processo.
amanita kiki

Respostas:

11

Tenho algumas idéias para compartilhar sobre a redução de dimensão em problemas de aprendizado não supervisionado. Em resposta, presumi que o seu interesse é o "toque alto", o envolvimento humano por meio da interpretação de cluster, em oposição a uma abordagem de aprendizado de máquina automatizada, chave na mão, caixa preta e "toque discreto", na qual a interpretação é deliberadamente enfatizada . Se fosse o último, por que você faria a pergunta? Além disso, observe que tive muita experiência em executar soluções de cluster em uma ampla variedade de ambientes de negócios ao longo dos anos, incluindo marketing B2C estratégico, arenas de tecnologia B2B e política educacional (agrupamento de alunos e escolas).

Primeiro, porém, eu tenho uma pergunta sobre o seu comentário sobre "agrupar conjuntos de dados diferentes". Eu não sabia o que você quis dizer com isso ou como isso poderia impactar a abordagem e esperava que você pudesse elaborar.

Gostaria de contestar sua suposição no item 1 acima de que as soluções baseadas em PCAs são "difíceis de interpretar". As razões para a execução de um PCA como uma etapa preliminar do clustering têm a ver principalmente com a higiene da solução resultante, na medida em que muitos algoritmos de clustering são sensíveis à redundância de recursos. O PCA reduz essa redundância em um punhado gerenciável de componentes, minimizando os desafios e dificuldades observados em relação à seleção de recursos. Embora seja verdade que os componentes emitidos por um PCA ofusquem a granularidade e a especificidade dos recursos individuais, isso é um problema se você confiar apenasnesses componentes na análise dos resultados. Em outras palavras, você não está de forma alguma bloqueado no uso apenas dos componentes para interpretação de cluster. Além disso, você nem precisa se preocupar com o que as dimensões dos fatores "significam". Eles são apenas um meio intermediário e (em última análise) descartável para um fim, facilitando uma solução acionável. Mas, ao enfatizar esse ponto, sou diferente de muitos profissionais, já que as equipes podem, passam e passam semanas construindo cuidadosamente uma solução fatorial "significativa". Para mim, isso é um desperdício ineficiente de tempo e dinheiro do cliente.

Nesse ponto, haverá um monte de considerações técnicas a serem abordadas. Por um lado, se o seu algoritmo PCA não for invariável em escala (por exemplo, OLS vs ML), qualquer solução PCA resultante será distorcida, carregando mais fortemente nos recursos de alta variação. Nesses casos, seus recursos precisam ser pré-processados ​​ou transformados de alguma forma para nivelar essa variação. Há um grande número de possibilidades aqui, incluindo padronização média, padronização de intervalo ou IQR, escala ipsativa e assim por diante. Aproveite essa transformação, oferecendo a melhor e mais interpretável solução.

Depois que uma solução de cluster é gerada, a interpretação é melhor motivada (na minha experiência) ignorando os componentes e retrocedendo nos recursos originais, juntamente com qualquer informação descritiva adicional que não seja usada diretamente na solução. Neste ponto, algumas heurísticas são os melhores guias para insights qualitativos. Isso pode ser tão fácil quanto gerar uma planilha que analisa seus clusters com base em médias ou medianas para cada recurso (as linhas da planilha), para cada cluster (as colunas) e uma coluna adicional que representa a média geral da amostra total . Em seguida, ao indexar as médias do cluster de cada recurso em relação à média geral (e multiplicar por 100), é criada uma heurística semelhante à pontuação de QI, na medida em que "100" é QI "normal" ou comportamento médio, índices acima de 120 sugerem altas probabilidades de um recurso ser "verdadeiro" sobre o comportamento de um cluster e índices de 80 ou menos são indicativos de recursos "não verdadeiros" de um cluster. Esses índices de mais de 120 e 80 ou menos são como testes t de proxy para a significância de um determinado recurso na condução da solução. Obviamente, você pode executar testes de significância em grupo e, dependendo do tamanho da amostra, obterá respostas que variam de acordo com essas regras práticas.

Ok ... depois de tudo isso, suponha que você ainda se oponha a usar o PCA como entrada direta em um algoritmo de clustering, o problema permanece em relação a como selecionar um conjunto reduzido de recursos. O PCA ainda pode ser útil aqui, pois os PCAs são como executar uma regressão sem uma variável dependente. Os principais recursos de carregamento de cada componente podem se tornar as entradas no algoritmo de cluster.

Para seu ponto de vista sobre o grande número de recursos e o tamanho da amostra relativamente pequeno de seus dados, a regra geral típica em muitas análises multivariadas de "informações completas" é no mínimo cerca de 10 observações por recurso. Existem alguns métodos especializados que podem ser aproveitados para contornar esse desafio. Por exemplo, os mínimos quadrados parciais (PLS) foram desenvolvidos pela primeira vez por Herman Wold em seu livro The Emetric Empiricism, de 1990, para uso em campos como a quimiometria que enfrentam esse problema preciso. É de natureza analítica a fatores, mas é muito menos rigoroso ao exigir um n grande para gerar as dimensões. Outras soluções incluem abordagens aleatórias de aprendizado de máquina, do tipo floresta, "dividir e conquistar", usadas com grandes quantidades de informação. Esses métodos são revisados ​​neste pdfhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Mas suponha que você tenha decidido que ainda não quer ter relação com a análise fatorial e que está decidido a executar algum tipo de processo de seleção "sequencial" supervisionado. Na minha opinião, a questão mais importante é menos sobre encontrar uma métrica de desempenho post-hoc (Índice Dunn) e mais sobre a identificação de um proxy adequado - uma variável dependente - para tornar essa abordagem possível. Esta decisão é inteiramente uma função do seu julgamento e do status de PME em seus dados. Não existem "práticas recomendadas", respostas muito menos fáceis para isso e, como você descreveu seus dados, não é um pequeno desafio.

Depois que a decisão é tomada, existem literalmente centenas de possíveis soluções de seleção de variáveis ​​para você escolher. Seleção variável é uma área de tópico na qual todo estatístico e seu irmão publicaram um artigo. Sua abordagem preferida parece ser a "seleção sequencial direta".

Vale ressaltar que existem modelos de aprendizado supervisionado que se dobram em uma solução de cluster como parte do algoritmo. Exemplos disso incluem as abordagens grandes e altamente flexíveis conhecidas como modelos de classe latente. A essência dos modelos de LC é que eles são de dois estágios: no estágio um, um DV é definido e um modelo de regressão é construído. No segundo estágio, qualquer heterogeneidade na saída residual do modelo - um único vetor latente - é particionada em "classes" latentes. Há uma visão geral da modelagem de LC nesta discussão de currículo aqui ... dúvida do modelo de logit multinomial de classe latente

Espero que isto ajude.

Mike Hunter
fonte
Obrigado por responder a minha pergunta de maneira tão abrangente. Antes de tudo, é engraçado que você tenha mencionado quimiometria, porque este é exatamente o campo em que estou trabalhando. Estou tentando encontrar clusters em medições de diferentes amostras e meus recursos são sinais em um espectro de RMN. Essa também é a principal razão pela qual pensei em descartar o PCA tão cedo, pois o objetivo da minha análise é relacionar os clusters a um punhado de recursos reais (sinais). Não estou decidido a usar uma seleção sequencial, é exatamente o que usei até agora. Vou dar uma olhada nos links que você deu.
precisa
Isso é engraçado em quimiometria. O livro de Wold é uma boa leitura, em geral. Que tipo de "sujeitos" compõem as amostras? E quais são as imagens nmrs?
Mike Hunter
As amostras são extratos aquosos de plantas e coletam espectros de 1H-rmn. Minha tarefa é puramente exploratória. Devo encontrar qualquer aglomerado que queremos relacionar posteriormente a genótipos diferentes ou a diferentes características da planta, como resistência ao estresse por seca, etc. Não é fácil encontrar um bom ponto de partida para encontrar o conjunto correto de metabólitos. / recursos que ajudam a dividir os clusters, pois haverá diferentes clusters criados por diferentes recursos para as diferentes perguntas.
precisa
Portanto, achei que a abordagem seqüencial poderia funcionar melhor: - encontre um conjunto de recursos para agrupar os dados - remova esses recursos de todo o conjunto e comece novamente. Dessa forma, espero encontrar vários conjuntos de clusters com os quais possa me relacionar mais tarde as diferentes questões
JohnDoe
11
Algo a considerar é comparar qualquer trabalho exploratório com um conjunto pré-determinado ou definido de clusters, também chamado de análise de cluster "confirmatória". Eu sugiro isso porque parece que você e sua equipe têm fortes hipóteses de entrada sobre a formação de aglomerados em função de, por exemplo, "resistência à seca-estresse" da planta. Eu acho que você descobrirá que o trabalho exploratório fornecerá insights e resultados superiores. Agrupamento exploratória aproveita as informações completas disponíveis em seus dados que as regras de atribuição "confirmação" tipicamente capitalizar sobre um punhado de características
Mike Hunter
1

Tudo o que você precisa é de um critério de qualidade de cluster. Aqui está a idéia: você divide os dados no trem e no teste, cria agrupamentos na parte do trem; use esse cluster para agrupar cada um dos elementos do conjunto de testes (pelo cluster mais próximo); construir um cluster separado no conjunto de teste; encontre semelhança do cluster no teste com o cluster previsto. Essa semelhança é o critério de qualidade do cluster. Agora, como medir essa semelhança é com você. Depois de obtê-lo, você seleciona o subconjunto de recursos para maximizar essa similaridade.

Marina
fonte