Este é o problema que você deseja resolver:
minx∑i=1n∑j=1kxij||pi−cj||2subject to:∑j=1kxij=1∀icj is the centroid of cluster jxij∈{0,1}∀i,j
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 Rxijijpicjij , onde d é a dimensionalidade dos pontos de dados.Rdd
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 jjxij
cj=∑ixijpij∑ixij
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:
minx∑i=1n∑j=1kxij||pi−yj||2subject to:∑j=1kxij=1∀ixij∈{0,1}∀i,jyj∈Rd∀j
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:
- yj
- yjxij
- xij variáveis e encontre os valores ideais parayj variáveis.
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 yjvariá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.