Você pode comparar diferentes métodos de armazenamento em cluster em um conjunto de dados sem uma verdade básica por validação cruzada?

12

Atualmente, estou tentando analisar um conjunto de dados de documento de texto que não tem nenhuma verdade. Disseram-me que você pode usar a validação cruzada k-fold para comparar diferentes métodos de armazenamento em cluster. No entanto, os exemplos que eu vi no passado usam uma verdade básica. Existe uma maneira de usar meios de dobra k neste conjunto de dados para verificar meus resultados?

mtber75
fonte

Respostas:

12

A única aplicação de validação cruzada para cluster que conheço é esta:

  1. Divida a amostra em um conjunto de treinamento de 4 partes e um conjunto de testes de 1 parte.

  2. Aplique seu método de armazenamento em cluster ao conjunto de treinamento.

  3. Aplique-o também ao conjunto de teste.

  4. Use os resultados da Etapa 2 para atribuir cada observação no conjunto de testes a um cluster de conjuntos de treinamento (por exemplo, o centróide mais próximo para médias k).

  5. No conjunto de testes, conte para cada cluster da Etapa 3 o número de pares de observações nesse cluster em que cada par também está no mesmo cluster de acordo com a Etapa 4 (evitando assim o problema de identificação de cluster apontado por @cbeleites). Divida pelo número de pares em cada cluster para obter uma proporção. A proporção mais baixa em todos os clusters é a medida de quão bom é o método em prever a associação de cluster para novas amostras.

  6. Repita o passo 1 com partes diferentes nos conjuntos de treinamento e teste para torná-lo 5 vezes maior.

Tibshirani & Walther (2005), "Validação de Cluster por Força de Predição", Journal of Computational and Graphical Statistics , 14 , 3.

Scortchi - Restabelecer Monica
fonte
você pode explicar melhor o que é um par de observação (e por que estamos usando o par de observações em primeiro lugar)? Além disso, como podemos definir o que é um "mesmo cluster" no conjunto de treinamento em comparação com o conjunto de teste? Dei uma olhada no artigo, mas não entendi.
Tanguy
1
@Tanguy: você considera todos os pares - se as observações são A, B e C, os pares são {A, B}, {A, C} e {B, C} -, e você não tenta definir " o mesmo cluster "nos conjuntos de trem e teste, que contêm observações diferentes. Em vez disso, compare as duas soluções de armazenamento em cluster aplicadas ao conjunto de testes (uma gerada a partir do conjunto de treinamento e outra a partir do próprio conjunto de testes) observando com que frequência eles concordam em unir ou separar membros de cada par.
Scortchi - Restabelece Monica
ok, então as duas matrizes de par de observações, uma no conjunto de trem e outra no conjunto de teste, são comparadas com uma medida de similaridade?
Tanguy
@Tanguy: Não, você considera apenas pares de observações no conjunto de testes.
Scortchi - Restabelece Monica
desculpe, eu não estava claro o suficiente. Deve-se tomar todo o par de observações do conjunto de testes, a partir do qual uma matriz preenchida com 0 e 1 pode ser construída (0 se o par de observação não estiver no mesmo cluster, 1 se estiver). Duas matrizes são calculadas, uma vez que examinamos o par de observações para os clusters obtidos no conjunto de treinamento e no conjunto de testes. A semelhança dessas duas matrizes é então medida com alguma métrica. Estou correcto?
Tanguy
7

Estou tentando entender como você aplicaria a validação cruzada ao método de clustering, como o k-means, já que os novos dados que virão mudarão o centróide e até as distribuições de clustering existentes.

Em relação à validação não supervisionada em cluster, talvez seja necessário quantificar a estabilidade de seus algoritmos com número de cluster diferente nos dados amostrados novamente.

A idéia básica da estabilidade de cluster pode ser mostrada na figura abaixo:

insira a descrição da imagem aqui

Você pode observar que, com o número de cluster 2 ou 5, há pelo menos dois resultados de cluster diferentes (consulte as linhas de divisão do traço nas figuras), mas com o número de cluster 4, o resultado é relativamente estável.

Estabilidade de cluster: uma visão geral de Ulrike von Luxburg pode ser útil.

lennon310
fonte
7

Reamostragem, como feita durante (iterada) kA validação cruzada de quatro vezes gera "novos" conjuntos de dados que variam do conjunto de dados original removendo alguns casos.

Para facilitar a explicação e a clareza, eu inicializaria o cluster.

Em geral, você pode usar esses agrupamentos reamostrados para medir a estabilidade de sua solução: ela dificilmente muda ou muda completamente?

Mesmo que você não tenha uma base sólida, é claro que você pode comparar o agrupamento resultante de diferentes execuções do mesmo método (reamostragem) ou os resultados de diferentes algoritmos de agrupamento, por exemplo, tabulando:

km1 <- kmeans (iris [, 1:4], 3)
km2 <- kmeans (iris [, 1:4], 3)
table (km1$cluster, km2$cluster)

#      1  2  3
#   1 96  0  0
#   2  0  0 33
#   3  0 21  0

como os clusters são nominais, sua ordem pode mudar arbitrariamente. Mas isso significa que você tem permissão para alterar a ordem para que os clusters correspondam. Os elementos na diagonal * contam casos que são atribuídos ao mesmo cluster e elementos fora da diagonal mostram de que maneira as atribuições foram alteradas:

table (km1$cluster, km2$cluster)[c (1, 3, 2), ]

#      1  2  3
#   1 96  0  0
#   3  0 21  0
#   2  0  0 33

Eu diria que a reamostragem é boa para estabelecer a estabilidade do cluster em cada método. Sem isso, não faz muito sentido comparar os resultados com outros métodos.

* funciona também com matrizes não quadradas se resultar em diferentes números de clusters. Eu então alinharia para que os elementosEu,Eutem o significado da diagonal anterior. As linhas / colunas extras mostram a partir de quais clusters o novo cluster obteve seus casos.


Você não está misturando validação cruzada k-fold e agrupamento k-means, não é?

cbeleites suporta Monica
fonte
0

Há uma publicação recente sobre um método de validação bi-cruzada para determinar o número de clusters aqui .

e alguém está tentando implementar com sci-kit learn aqui .

Embora seu sucesso seja um pouco limitado. Como as publicações indicam, esse método não funciona bem quando os centros de clusters estão altamente correlacionados, o que pode ocorrer em tamanhos de cluster grandes em sistemas de baixa dimensão. (por exemplo:7 agrupamentos em 2D não funciona bem.)

Matthew Gunther
fonte