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")

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 .


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.