Clustering como redução de dimensionalidade

10

Estou lendo um livro "Machine learning with Spark", de Nick Pentreath, e na página 224-225 o autor discute sobre o uso de meios K como forma de redução de dimensionalidade.

Eu nunca vi esse tipo de redução de dimensionalidade, ele tem um nome ou é útil para formas específicas de dados ?

Cito o livro que descreve o algoritmo:

Suponha que agrupemos nossos vetores de recursos de alta dimensão usando um modelo de agrupamento K-means, com k clusters. O resultado é um conjunto de k centros de cluster.

Podemos representar cada um dos nossos pontos de dados originais em termos de quão longe está de cada um desses centros de cluster. Ou seja, podemos calcular a distância de um ponto de dados para cada centro de cluster. O resultado é um conjunto de k distâncias para cada ponto de dados.

Essas distâncias k podem formar um novo vetor de dimensão k. Agora podemos representar nossos dados originais como um novo vetor de menor dimensão, em relação à dimensão do recurso original.

O autor sugere uma distância gaussiana.

Com 2 clusters para dados bidimensionais, tenho o seguinte:

K-significa:

Meios K com 2 grupos

Aplicando o algoritmo com a norma 2:

norma 2

Aplicando o algoritmo a uma distância gaussiana (aplicando dnorm (abs (z))):

Gaussiano

Código R para as imagens anteriores:

set.seed(1)
N1 = 1000
N2 = 500
z1 = rnorm(N1) + 1i * rnorm(N1)
z2 = rnorm(N2, 2, 0.5) + 1i * rnorm(N2, 2, 2)
z = c(z1, z2)

cl = kmeans(cbind(Re(z), Im(z)), centers = 2)

plot(z, col = cl$cluster)

z_center = function(k, cl) {
  return(cl$centers[k,1] + 1i * cl$centers[k,2])
}

xlab = "distance to cluster center 1"
ylab = "distance to cluster center 2"

out_dist = cbind(abs(z - z_center(1, cl)), abs(z - z_center(2, cl)))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")

out_dist = cbind(dnorm(abs(z - z_center(1, cl))), dnorm(abs(z - z_center(2, cl))))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")
ahstat
fonte
1
Observe que no seu exemplo, nenhuma redução de dimensionalidade ocorre desde que seus dados eram bidimensionais e você está mapeando-os em duas novas dimensões (as distâncias para cada um dos seus dois clusters). Para reduzir a dimensionalidade dos seus dados, você precisa usar menos clusters do que o número de dimensões originais nos dados.
Ruben van Bergen
Sim, fiz tudo isso em 2D para permitir traçar a imagem inicial e permitir que todos vejam a remodelação; portanto, não é redução de dimensionalidade nesse caso. A forma de saída é semelhante para dados amostrados de maneira semelhante em 3D e com 2 clusters.
ahstat 4/07
4
Gosto do fato de você enfatizar a distância dos centros de cluster. Muitos analistas de dados discretizam os dados e perdem informações agrupando os dados em clusters "distintos".
Frank Harrell

Respostas:

6

Eu acho que esse é o "método centróide" (ou o método "centróideQR" intimamente relacionado) descrito por Park, Jeon e Rosen . Do resumo da tese de Moon-Gu Jeon :

Nosso método Centroid projeta dados dimensionais completos no espaço centróide de suas classes, o que proporciona uma tremenda redução dimensional, reduzindo o número de dimensões ao número de classes e aprimorando a estrutura de classes original. Uma de suas propriedades interessantes é que, mesmo ao usar duas medidas de similaridade diferentes, os resultados da classificação para o espaço dimensional completo e reduzido formado pelo Centroid são idênticos quando a classificação baseada no centróide é aplicada. O segundo método, chamado CentroidQR, é uma variante do método Centroid, que usa como espaço de projeção, k colunas da matriz ortogonal Q da decomposição QR da matriz do centróide.

Também parece ser equivalente ao método de "vários grupos" da Análise Fatorial .

Leo Martins
fonte
3

Veja toda a literatura sobre indexação baseada em pivô .

Mas você ganha pouco usando k-means. Normalmente, você pode apenas usar pontos aleatórios como pivôs. Se você escolher o suficiente, eles não serão todos semelhantes.

Possui QUIT - Anony-Mousse
fonte
Você pode explicar por que "você ganha pouco usando o k-means"? Obrigado
Tagar
Porque os resultados não parecem melhores do que com pivôs aleatórios.
QuIT - Anony-Mousse,
obrigado! você pode atualizar sua resposta com um link para a técnica de "indexação baseada em pivô"? Suponho que seja o mesmo que "usar pontos aleatórios como pivôs". Eu tentei google, mas não tenho certeza se o que eu estou recebendo é diretamente relacionada a este K-means abordagem delineada no Q.
Tagar
2

Existem várias maneiras de usar o cluster como redução de dimensão. Para os meios K, você também pode projetar os pontos (ortogonalmente) no espaço vetorial (ou afim) gerado pelos centros.

Benoit Sanchez
fonte