Eu tenho uma pergunta sobre clusters que estou pensando em tratar com uma abordagem de mistura não paramétrica (eu acho). Estou trabalhando na explicação do comportamento humano.
Cada linha do meu banco de dados contém:
- o ID de alguém
- alguns parâmetros do ambiente X (exemplo: temperatura, vento, etc.)
- uma variável binária Y representando a reação da pessoa aos parâmetros (exemplo: adoecer ou não adoecer devido ao clima).
Minha idéia (baseada na intuição e não nos dados) é que podemos reunir pessoas em um número finito de grupos para que, em um grupo, as pessoas tenham a mesma reação à temperatura (algumas ficam facilmente doentes, outras nunca estão doentes ...) . Em um determinado grupo, mais formalmente, a lei de Y condicional aos parâmetros X é a mesma.
Eu não tenho idéia da lei de Y condicional para X . Para os parâmetros X , posso fazer algumas hipóteses, se necessário.
Eu gostaria de criar um grupo de pessoas "tendo mais ou menos" a mesma reação ao parâmetro. Além disso, gostaria de prever a reação de uma determinada pessoa a um determinado valor dos parâmetros (mesmo que esse evento nunca tenha acontecido no banco de dados).
- Minha abordagem está correta?
- Você recomendaria outro ponto de vista para esse problema?
Eu ficaria muito interessado em quaisquer referências sobre isso.
Não hesite em me pedir para reformular a declaração do problema.
Respostas:
Respondendo ao seu ponto "Você recomendaria outro ponto de vista para esse problema?", Sugiro que você realmente verifique seus dados. Isso pode ajudá-lo a planejar melhor as próximas etapas a serem seguidas. Afinal, o sistema olho-cérebro humano é muito bom no reconhecimento de padrões e você pode decidir melhor o número de grupos, caso opte por um agrupamento não supervisionado.
Consequentemente, e como seus dados parecem ter uma dimensão "alta", você pode tentar executar uma Análise de Componentes Principais (PCA), pois esta é uma análise muito rápida, especialmente para seu conjunto de dados de 100 mil pontos. O PCA, no entanto, não é a única e não necessariamente a abordagem mais apropriada para a redução da dimensão com o objetivo de visualização (2D / 3D), pois é um método linear e paramétrico. Seus dados podem se comportar de maneira não linear. Posso sugerir a caixa de ferramentas de redução de dimensão para o Matlab da Laurens van der Maaten, que inclui várias técnicas diferentes. No entanto, algumas das técnicas são inerentemente lentas, portanto, você pode testá-las em dados subamostrados. Uma técnica de redução de dimensão não paramétrica e não linear muito recente e poderosa é o BH-SNEo que também deve funcionar para o tamanho do seu conjunto de dados, embora possa levar de 30 minutos a 1 hora, dependendo do hardware disponível. Como você está interessado na detecção de clusters, o BH-SNE pode ser uma boa escolha, pois (e é o "antecessor" t-SNE) mostrou um desempenho impressionante nesse aspecto em vários conjuntos de dados (no manuscrito).
Finalmente, abordando seu ponto em dados contínuos / discretos, é algo em que ainda não tenho experiência em como isso influencia a redução de dimensão. Dessa forma, convém tentar discretizar as variáveis contínuas ou ignorar as (poucas?) Variáveis discretas, se possível. Como alternativa, convém pegar a variável binária (reação da pessoa) para codificar por cores os pontos na visualização de baixa dimensão (2D / 3D).
PS A execução de um cluster hierárquico (análise de ligação) e a observação do dendrograma resultante é outra maneira de criar uma representação em baixa dimensão dos seus dados, o que pode ajudá-lo a estimar melhor se existem clusters e, potencialmente, quantos clusters existem.
fonte