Pergunta

Alguém sabe um bom algoritmo para executar agrupamento em ambos discreto e atributos contínuos? Eu estou trabalhando em um problema de identificação de um grupo de clientes semelhantes e cada cliente tem tanto discreto e atributos contínuos (Pense tipo de clientes, valor da receita gerada por este cliente, localização geográfica e etc ..)

Tradicionalmente algoritmo como K-means ou EM trabalho para atributos contínuos, o que se temos um mix de atributos contínuos e discretos?

Foi útil?

Solução

Se bem me lembro, então algoritmo COBWEB poderia trabalhar com atributos discretos.

E você também pode fazer diferentes 'truques' para os atributos discretos, a fim de criar métricas de distância significativas.

Você poderia google para o agrupamento de categóricas / atributos discretos, um dos primeiros sucessos: ROCK:. Um algoritmo de agrupamento robusto para Categorical Atributos

Outras dicas

R é uma grande ferramenta para o agrupamento - a abordagem padrão seria para calcular uma matriz de dissimilaridade em seus dados mistos usando daisy , em seguida o agrupamento com que a matriz usando agnes .

O cba módulo sobre CRAN inclui uma função para cluster em preditores binários baseados em ROCK.

Você também pode olhar em afinidade propagação como uma possível solução. Mas para superar o dilema contínuo / discreto você precisa definir uma função que valoriza os estados discretos.

Eu pares realmente presentes dos atributos discretos aos usuários e pedir-lhes para definir sua proximidade. Você iria apresentá-los com uma escala que vai desde [estrangeira synonym..very] ou similar. Ter muitas pessoas fazem isso, você vai acabar com uma função de proximidade amplamente aceite para os valores de atributos não-lineares.

Que tal transformar cada um de seus atributos categóricos em uma série de N-1 atributos de indicadores binários (onde n é o número de categorias)? Você não deve ter medo de alta dimensionalidade, como uma representação esparsa (como SequentialAccessSparseVector de mahout pode ser empregado). Depois de fazer isso, você pode usar um clássico K-means ou qualquer somente numérico algoritmo padrão de agrupamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top