Eu tenho um algoritmo de cluster (não k-means) com o parâmetro de entrada (número de clusters). Após executar o cluster, eu gostaria de obter uma medida quantitativa da qualidade desse cluster. O algoritmo de clustering tem uma propriedade importante. Para se eu alimentar pontos de dados sem nenhuma distinção significativa entre eles para esse algoritmo, obteremos um cluster contendo pontos de dados e um cluster com ponto de dados. Obviamente, não é isso que eu quero. Então, eu quero calcular essa medida de qualidade para estimar a razoabilidade desse cluster. Idealmente, poderei comparar essas medidas para diferentes . Então, executarei o clustering no intervalo dek = 2 N N - 1 1 k ke escolha aquele com a melhor qualidade. Como faço para calcular essa medida de qualidade?
ATUALIZAR:
Aqui está um exemplo quando é um cluster ruim. Digamos que existem 3 pontos em um plano formando triângulo equilátero. Dividir esses pontos em 2 grupos é obviamente pior do que dividi-los em 1 ou 3 grupos.
fonte
Respostas:
A escolha da métrica depende do que você considera o propósito do armazenamento em cluster. Pessoalmente, acho que o agrupamento deveria ser sobre a identificação de diferentes grupos de observações que foram gerados por um processo diferente de geração de dados. Portanto, eu testaria a qualidade de um clustering gerando dados de processos conhecidos de geração de dados e depois calcularia com que freqüência os padrões são classificados incorretamente pelo clustering. Obviamente, isso envolveu suposições sobre a distribuição de padrões de cada processo de geração, mas você pode usar conjuntos de dados projetados para classificação supervisionada.
Outros vêem o cluster como uma tentativa de agrupar pontos com valores de atributo semelhantes; nesse caso, medidas como SSE etc. são aplicáveis. No entanto, considero essa definição de agrupamento bastante insatisfatória, pois ela apenas diz algo sobre a amostra específica de dados, e não algo generalizável sobre as distribuições subjacentes. Como os métodos lidam com clusters sobrepostos é um problema específico com essa exibição (para a exibição "processo de geração de dados", isso não causa nenhum problema real, você apenas obtém probabilidades de associação ao cluster).
fonte
Como o cluster não é supervisionado, é difícil saber a priori qual é o melhor cluster. Este é um tópico de pesquisa. Gary King, um conhecido cientista social quantitativo, tem um próximo artigo sobre esse assunto.
fonte
Aqui você tem algumas medidas, mas existem muitas outras:
SSE: soma do erro quadrado dos itens de cada cluster.
Distância inter cluster: soma da distância quadrada entre cada centróide do cluster.
Distância intra cluster para cada cluster: soma da distância quadrada dos itens de cada cluster ao centróide.
Raio máximo: a maior distância de uma instância ao centróide do cluster.
Raio médio: soma da maior distância de uma instância ao centróide do cluster, dividida pelo número de clusters.
fonte
Você entrou na área de Validação de Cluster. Meu aluno fez a validação usando as técnicas descritas em:
A. Banerjee e RN Dave. Validando clusters usando a estatística hopkins. 2004 Conferência Internacional IEEE sobre Sistemas Difusos IEEE Cat No04CH37542, 1: p. 149-153, 2004.
É baseado no princípio de que, se um cluster é válido, os pontos de dados são distribuídos uniformemente dentro de um cluster.
Porém, antes disso, você deve determinar se seus dados possuem a chamada Tendência de Cluster, ou seja, se vale a pena agrupar e o número ideal de clusters:
S. Saitta, B. Raphael e IFC Smith. Um índice de validade abrangente para cluster. Intell. Data Anal., 12 (6): p. 529-548, 2008.
fonte
Como outros já apontaram, existem muitas medidas de agrupar a "qualidade"; a maioria dos programas minimiza o SSE. Nenhum número único pode dizer muito sobre ruído nos dados, ou ruído no método, ou mínimos mínimos - pontos baixos em Saskatchewan.
Portanto, primeiro tente visualizar, experimente um determinado agrupamento antes de reduzi-lo para "41". Em seguida, faça três execuções: você obtém SSEs 41, 39, 43 ou 41, 28, 107? Quais são os tamanhos e raios do cluster?
(Adicionado :) Dê uma olhada nas plotagens e pontuações de silhuetas, por exemplo, no livro de Izenman, Modern Multivariate Statistical Techniques (2008, 731p, isbn 0387781889).
fonte
O Silhouette pode ser usado para avaliar os resultados do cluster. Faz isso comparando a distância média dentro de um cluster com a distância média aos pontos no cluster mais próximo.
fonte
Um método como o usado em florestas aleatórias não supervisionadas pode ser usado.
Os algoritmos de floresta aleatória tratam a classificação não supervisionada como um problema de duas classes, onde um conjunto de dados artificial e aleatório totalmente diferente é criado a partir do primeiro conjunto de dados, removendo a estrutura de dependência dos dados (randomização).
Você pode então criar um conjunto de dados artificial e aleatório, aplicar seu modelo de cluster e comparar sua métrica de escolha (por exemplo, SSE) em seus dados reais e em seus dados aleatórios.
A mistura de randomização, permutação, bootstrapping, ensacamento e / ou jacknifing pode fornecer uma medida semelhante a um valor P medindo o número de vezes que um determinado modelo de clustering fornece um valor menor para os dados reais do que os dados aleatórios usando uma métrica de escolha (por exemplo, SSE ou previsão de erro fora da bolsa).
Sua métrica é, portanto, diferença (probabilidade, diferença de tamanho, ...) em qualquer métrica de escolha entre dados verdadeiros e aleatórios.
Iterar isso para muitos modelos permitiria distinguir entre modelos.
Isso pode ser implementado em R.
randomforest está disponível em R
fonte
Se o algoritmo de agrupamento não for determinístico, tente medir a "estabilidade" dos agrupamentos - descubra com que frequência cada duas observações pertence ao mesmo agrupamento. Esse método geralmente é interessante, útil para escolher o algoritmo k em kmeans.
fonte