O pré-cluster ajuda a construir um melhor modelo preditivo?

9

Para a tarefa de modelagem de rotatividade, eu estava considerando:

  1. Computar k clusters para os dados
  2. Crie k modelos para cada cluster individualmente.

A justificativa para isso é que não há nada a provar, que a população de assinantes é homogênea; portanto, é razoável supor que o processo de geração de dados possa ser diferente para diferentes "grupos"

Minha pergunta é: é um método apropriado? Ele viola alguma coisa ou é considerado ruim por algum motivo? Se sim, por quê?

Caso contrário, você compartilharia algumas práticas recomendadas sobre esse assunto? E a segunda coisa - geralmente é melhor ou pior fazer o pré-agrupamento do que a árvore modelo (conforme definido em Witten, Frank - árvore de classificação / regressão com modelos nas folhas. Intuitivamente, parece que o estágio da árvore de decisão é apenas outra forma de agrupamento, mas idk se tiver alguma vantagem sobre o cluster "normal".).

Ziel
fonte

Respostas:

3

Existe um método chamado regressão em cluster que resolve problemas semelhantes (primeiro agrupa dados e depois constrói modelos preditivos). Veja, por exemplo, isso.

Miroslav Sabo
fonte
11
Eu procurei aqui: tandfonline.com/doi/abs/10.1080/00273170701836653 e encontrei o seguinte no resumo: "em alguns casos, a maioria das variações na variável de resposta é explicada pelo agrupamento de objetos, com pouco benefício adicional fornecido por modelos de regressão dentro do cluster. Consequentemente, há um tremendo potencial de sobreajuste com a regressão clusterwise ". Realmente não parece promissor.
Ziel
Ok, mas eles não dizem que sempre falha. Eu nunca usei esse método, só sei que pode ser uma combinação de abordagem supervisionada e não supervisionada, mas há um pequeno número de artigos que usam esse método.
Miroslav Sabo
Além disso, a maioria dos aplicativos que encontrei são sobre marketing e finanças; portanto, talvez seja adequado especialmente para esse tipo de dados.
Miroslav Sabo
11
Parece muito intuitivo para o campo do marketing - rotatividade, cross / upsell.
Ziel
2

Dois pontos muito longos para serem comentados:

  • clusters puros (isto é, contendo casos de apenas uma classe) não são um problema per se: os chamados classificadores de uma classe modelam cada classe independentemente de todas as outras. Eles podem lidar perfeitamente com isso.

  • No entanto, se os clusters de dados de uma maneira que as classes são bastante separadas, ou seja, os clusters são bastante puros, isso significa que existe uma estrutura muito forte, uma estrutura que a análise de cluster é capaz de encontrar sem orientação pelos rótulos das classes. Isso significa que certos tipos de classificadores, como métodos vizinhos mais próximos, com base na mesma medida de distância usada pela análise de cluster, são apropriados para os dados.

  • A outra possibilidade, situações em que os clusters não são puros, mas uma combinação de métodos de cluster e classificação pode fazer bem é apropriada para árvores. A árvore fará a parte do clustering (e os nós puros não são considerados um problema.) Aqui está um exemplo artificial, uma versão em 2 clusters do problema XOR:
    Cluster XOR

  • outra maneira de incluir as informações do cluster sem correr o risco de ter clusters puros seria usar o cluster como uma etapa de geração de recursos: adicione o resultado da análise de cluster como novas variáveis ​​à matriz de dados.

  • Você pergunta se é ruim por algum motivo: uma armadilha é que essa abordagem leva a modelos com muitos graus de liberdade. Você terá que ter um cuidado especial para não se ajustar demais.

  • Dê uma olhada nas árvores baseadas em modelo, por exemplo, a resposta da mbq aqui , acho que elas implementam um conceito muito próximo do que você procura. Eles também podem ser implementados como floresta: por exemplo, R package mobForest .

cbeleites descontentes com o SX
fonte
1

Estou lidando com problemas semelhantes nos dias de hoje. Eu tenho centenas de recursos para construir o classificador. Depois de experimentar modelos diferentes (ex: florestas aleatórias, aumento de gradiente, etc ...), ainda obtive baixa precisão / recall. Então, eu estou tentando fazer alguns agrupamentos e criar classificadores em diferentes grupos. Minha preocupação é, como diz Anony-Mousse, como obter mais informações do classificador se usar todas as informações em cluster? Então, aqui está o que eu vou fazer a seguir:

  1. Use alguns recursos (menos, de acordo com o conhecimento prévio) para fazer cluster.
  2. Use outros recursos (mais) para treinar classificadores.

Eu acho que também pode ajudar a reduzir a complexidade, desejo que ajude.

Gilbert Liou
fonte
1

Construir clusters e, em seguida, modelos correspondentes é absolutamente viável. O caso patológico observado nos comentários em que os agrupamentos separam perfeitamente as variáveis ​​de resultado colocaria dificuldades para os classificadores é um problema teórico, mas acho que é improvável (especialmente em um caso de alta dimensão). Além disso, se você pudesse criar esses clusters, poderia usá-los apenas para prever!kkk

Além disso, se o processo começar com amostras, os classificadores poderão usar apenas amostras. Assim, uma abordagem mais poderosa seria usar os clusters na construção de um único classificador que incorpore a heterogeneidade nos clusters usando uma mistura de regressões. No cluster baseado em modelo, supõe-se que os dados sejam gerados a partir de uma distribuição de mistura que com probabilidade e com probabilidade e e . Uma regressão de mistura é uma extensão que permite modelar os dados como dependentes de covariáveis;N / k Y i ~ N ( μ i , σ 2 i ) i = 1 π i = 2 1 - π μ 1μ 2 σ 2 1σ 2 2 μ i β i X i β iNN/kYiN(μi,σi2)i=1πi=21πμ1 μ2σ12σ22μi é substituído por , onde o deve ser estimado. Embora este exemplo seja para um caso gaussiano univariado, a estrutura pode acomodar muitos dados (o log multinomial seria apropriado para variáveis ​​categóricas). O pacote flexmix para R fornece uma descrição mais detalhada e, é claro, uma maneira relativamente fácil e extensível de implementar essa abordagem.βiXiβi

Como alternativa, em um ambiente discriminativo, pode-se tentar incorporar atribuições de cluster (hard ou soft) como um recurso para treinar o algoritmo de classificação de escolha (por exemplo, NB, ANN, SVM, RF, etc.)

Sameer
fonte
0

Bem, se seus clusters forem realmente bons, seus classificadores serão ruins. Porque eles não têm diversão suficiente em seus dados de treinamento.

Diga que seus agrupamentos são perfeitos, ou seja, puros. Você não pode mais treinar adequadamente um classificador lá. Classificadores precisam de exemplos positivos e negativos!

A Random Forest tem muito sucesso ao fazer exatamente o oposto. Eles coletam uma amostra aleatória dos dados, treinam um classificador nisso e usam todos os classificadores treinados.

O que pode funcionar é usar cluster e, em seguida, treinar um classificador em cada par de clusters, pelo menos se discordarem o suficiente (se uma classe for dividida em dois clusters, você ainda não poderá treinar um classificador lá!)

Possui QUIT - Anony-Mousse
fonte
O objetivo do agrupamento não é encontrar clusters "puros", ou seja, aqueles que são impressionantes ao discriminar minha variável de destino. O objetivo do agrupamento é encontrar grupos homogêneos na área "outro". Para dar um exemplo: eu acho que na rotatividade existem clientes "somente de qualidade" e clientes "otimizadores de custos". Eu não acho que devo assumir que os recursos relevantes para a classificação são os mesmos nos dois grupos, então eu quero criar um modelo separado para cada grupo. É claro que não tenho grupos explícitos de "qualidade" e "custo", daí a ideia do agrupamento derivar esses grupos primeiro dos dados.
Ziel
Qualquer tipo de desequilíbrio e correlação extra nos dados pode prejudicar. Veja, um classificador pode querer discernir "apenas qualidade" e "otimização de custos". Se ele conseguir apenas um grupo, ele não poderá fazer uso dessa distinção.
Quit - Anony-Mousse 12/12/12
11
Mas somente se você fizer uma abordagem em dois níveis, primeiro classifique pelos clusters e avalie o classificador de cluster. Caso contrário, o classificador constante é inútil. Então você está colocando toda a carga no cluster.
Quit - Anony-Mousse
11
Bem, foi assim que eu entendi o OP.
cbeleites descontente com SX 15/10/12
11
É claro que você pode fazer isso, mas é provável que seus agrupamentos não sejam tão bons e que você esteja melhor com um conjunto adequado de classificadores "sobrepostos". Assim como o RandomForests.
QuIT - Anony-Mousse