Eu li que o algoritmo k-means apenas converge para um mínimo local e não para um mínimo global. Por que é isso? Posso pensar logicamente como a inicialização pode afetar o clustering final e existe a possibilidade de clustering abaixo do ideal, mas não encontrei nada que provasse isso matematicamente.
Além disso, por que o k-significa um processo iterativo? Não podemos apenas diferenciar parcialmente a função objetiva dos centróides, equipará-lo a zero para encontrar os centróides que minimizam essa função? Por que precisamos usar a descida gradiente para atingir o mínimo passo a passo?
clustering
k-means
convergence
gradient-descent
minimum
Prateek Kulkarni
fonte
fonte
Respostas:
Você pode ver o k-means como uma versão especial do algoritmo EM, o que pode ajudar um pouco.
Digamos que você esteja estimando uma distribuição normal multivariada para cada cluster com a matriz de covariância fixa à matriz de identidade para todos, mas a variável média onde i é o índice do cluster. É evidente que, se os parâmetros { μ i } são conhecidos, é possível atribuir a cada ponto P o seu conjunto de probabilidade máxima (ou seja. O μ i para que o raio de pμi i {μi} p μi p no mínimo). O algoritmo EM para esse problema é quase equivalente ao k-means.
Ao contrário, se você sabe quais os pontos pertencem a qual cluster, você pode estimar o ideal . A solução de forma fechada a esta (que encontra um ótimo global) basicamente diz que para encontrar os modelos de máxima verossimilhança { μ i }μi {μ^i} integrar sobre todas as tarefas possíveis de pontos para clusters. Como, mesmo com apenas trinta pontos e dois grupos, existem cerca de um bilhão dessas atribuições possíveis, isso é inviável de calcular.
Em vez disso, podemos adivinhar os parâmetros ocultos (ou os parâmetros do modelo) e iterar as duas etapas (com a possibilidade de terminar no máximo local). Se você permite que cada cluster assuma uma responsabilidade parcial por um ponto, você acaba com o EM; se você apenas atribuir o cluster ideal, obtém k-means.
Portanto, resumo executivo: em termos probabilísticos, existe uma solução global, mas requer que você itere todos os agrupamentos possíveis. Claramente, se você tem uma função objetiva, o mesmo é verdade. Você pode iterar sobre todas as soluções e maximizar a função objetivo, mas o número de iterações é exponencial no tamanho dos seus dados.
fonte
Este é o problema que você deseja resolver:
A variável binária indica se o ponto i está ou não atribuído ao cluster j . Os símbolos p i e c j denotam as coordenadas do i ponto e do centróide do j ésimo cluster, respectivamente. Ambos estão localizados em Rxij i j pi cj i j , onde d é a dimensionalidade dos pontos de dados.Rd d
O primeiro grupo de restrições diz que cada ponto deve ser atribuído a exatamente um cluster. O segundo grupo de restrições (que não temos definido matematicamente) dizer que as coordenadas do centrde de aglomerado realmente dependem valores de x i j variáveis. Podemos, por exemplo, expressar esta restrição como se segue: c j = Σ i x i j p i jj xij
No entanto, em vez de lidar com essas restrições não lineares, em K-Means, resolvemos (aproximadamente) um problema diferente que tem a mesma solução ótima que o nosso problema original:
Em vez de minimizar a distância dos centróides, minimizamos a distância para qualquer conjunto de pontos que proporcionem uma solução melhor. Acontece que esses pontos são exatamente os centróides.
Agora, para resolver esse problema, iteramos nas etapas 2-3 deste algoritmo, até a convergência:
Em cada etapa, a função objetivo melhora (ou permanece a mesma quando o algoritmo converge), pois a solução encontrada na etapa anterior está no espaço de pesquisa da etapa atual. No entanto, como estamos corrigindo algumas das variáveis em cada etapa, este é um procedimento de pesquisa local que não garante a otimização.
Felizmente, os problemas de otimização nas etapas 2 e 3 podem ser resolvidos de forma fechada. Se soubermosxeu j
(ou seja, se soubermos a qual cluster cada ponto está atribuído), os melhores valores para yj variáveis são os centróides de clusters. Se conhecermos valores parayj , obviamente, a melhor escolha para xeu j variáveis é atribuir cada ponto ao ponto mais próximo yj .
fonte
Um exemplo simples pode ajudar ..
Vamos definir o conjunto de pontos a serem agrupados como
A = {1,2,3,4}
.Digamos que você esteja tentando encontrar 2 grupos apropriados para A (2 médias). Existem (pelo menos) dois ajustes diferentes que satisfazem a condição estacionária dos meios k.
Configuração 1:
Aqui, o objetivo é 2. Na verdade, esse é um ponto de sela (tente
center1 = 1 + epsilon
ecenter1 = 1 - epsilon
)Configuração 1:
aqui o objetivo é 1/4.
Se k-means fosse inicializado como a primeira configuração, ele seria bloqueado .. e isso não significa um mínimo global.
Você pode usar uma variante do exemplo anterior para criar dois mínimos locais diferentes. Pois
A = {1,2,3,4,5}
, definircluster1={1,2}
ecluster2={3,4,5}
resultaria no mesmo valor objetivo quecluster1={1,2,3}
ecluster2={4,5}
Finalmente, o que aconteceria se você escolher
vs
?
fonte
[Isso foi antes de @ Peter responder]
Depois de uma pequena discussão (na seção de comentários), sinto que tenho que responder minha própria pergunta.
I believe that when I partially differentiate the objective function with respect to one centroid, the points in the cluster of another centroid vanish in the derivative. So, the centroid we can get will minimize only the sum of squared distances of only the particular cluster.
@whuber adds:
It would be awesome if anybody has more to add.
fonte
Everybody has explained everything, but I would like to add that if a sample data is not distributed as a Gaussian distribution then it can stuck to a local minima. In the K-means algorithm we are actually trying to get that.
fonte