/ / Cluster de dados de alta dimensão - c #, algoritmo, análise de cluster, mineração de dados

Clustering de dados de alta dimensão - c #, algoritmo, análise de cluster, mineração de dados

Quais são os melhores algoritmos de clustering para usar nopara agrupar dados com mais de 100 dimensões (às vezes até 1000). Eu apreciaria se você conhece alguma implementação em C, C ++ ou especialmente C #.

Respostas:

3 para resposta № 1

Depende muito dos seus dados. Vejo maldição da dimensionalidade para problemas comuns. Pesquisa recente (Houle et al.) mostrou que você não pode realmente atender aos números. Pode haver milhares de dimensões e os clusters de dados, bem como, é claro, existem dados unidimensionais que simplesmente não se agrupam. É principalmente uma questão de sinal-ruído. É por isso que, por exemplo, o agrupamento de vetores TF-IDF funciona bastante bem, principalmente com a distância do cosseno.

Mas o ponto chave é que você primeiro precisa entender a natureza dos seus dados. Você pode escolher funções de distância, pesos, parâmetros e algoritmos apropriados.

Em particular, você também precisa saber o que constitui um cluster para você. Existem muitas definições, em particular para dados de alta dimensão. Eles podem estar em subespaços, podem ou não ser girados arbitrariamente, podem se sobrepor ou não (meios k, por exemplo, não permite sobreposições ou subespaços).


0 para resposta № 2

bem, eu sei algo chamado quantização vetorial, é um bom algoritmo para agrupar stuf com muitas dimensões.


0 para resposta № 3

Eu usei k-means em dados com dimensões de 100 "s, é muito comum, portanto, tenho certeza de que há uma implementação em qualquer idioma, no pior cenário - é muito fácil de implementar por você mesmo.


0 para a resposta № 4

Também pode valer a pena tentar alguma dimensionalidadetécnicas de redução como a Análise de componentes principais ou uma rede neural autoassociativa antes de tentar agrupá-las. Pode transformar um problema enorme em um muito menor.

Depois disso, use k-means ou mistura de gaussianos.


0 para a resposta № 5

Os algoritmos EM-tree e K-tree no Árvore LMW O projeto pode agrupar problemas de alta dimensão como este. É implementado em C ++ e suporta muitas representações diferentes.

Temos novos algoritmos agrupando vetores binários criados por LSH / Random Projections, ou qualquer outra coisa que emita vetores binários que possam ser comparados via distância de Hamming, por similaridade.