Fuzzy K Means

Mariano Rivera

Abril 2017

A diferencia de K-Means, en cada iteración se asigna una membrecía (no se asigna exclusivamente un dato a cada clase)

El grado membrecía es el que dá el nombre de Fuzzy (o difuso)

Puede interpretarse como la probabilidad de que una clase sea la correcta para un dato.

Sinónimos:
Membrecía = Pretenecia = Similitud

Sean

Función Objetivo de Fuzzy K-Means

Luego,el clustring por Fuzzy K-Means se obtiene de minimizar

(1)
argminm, p12kiximk2pikμ            s.t.      kpik=1                        pik0 \underset{m,\,p}{\arg\min} \frac{1}{2} \sum_k \sum_i \| x_i- m_k \|^2 p_{ik}^\mu \\ \;\;\;\;\;\; \text{s.t.} \;\;\; \sum_k p_{ik} =1 \\ \;\;\;\;\;\;\;\;\;\;\;\; p_{ik} \ge 0

donde μ(1,)\mu \in (1, \infty) es un parámetro del algoritmo.

Lagrangiano

El Lagrangiano del problema (1) esta dado por

(2)
L(m,p,λ,s)=12kiximk2pikμiλi(kpik1)kisikpik \mathcal{L} (m,p, \lambda,s) = \frac{1}{2}\sum_k \sum_i \| x_i- m_k \|^2 p_{ik}^\mu - \sum_i \lambda_i \left( \sum_k p_{ik} -1 \right) -\sum_k\sum_i s_{ik} p_{ik}

donde λ<>0\lambda <> 0 y s0s\ge 0 son los multiplicadores de Lagrange de las restricciones de igualdad y nonegatividad, respectivamente.

definimos

(3)
dik=defximk2 d_{ik} \overset{def}{=} \| x_i- m_k \|^2

Condiciones KKTs

(4)
Lmk=0i(mkxi)pikμ=0mk=ixi pikμipikμ \frac{\partial \mathcal{L}}{\partial m_k} = 0 \rightarrow \sum_i ( m_k - x_i) p_{ik}^\mu =0 \rightarrow m_k = \frac{\sum_i x_i \, p^{\mu}_{ik}}{ \sum_i p^{\mu}_{ik}}

(5)
Lpik=0μ2dikpikμ1λisik=0 \frac{\partial \mathcal{L}}{\partial p_{ik}} = 0 \rightarrow \frac{\mu}{2} d_{ik} p_{ik}^{\mu-1} - \lambda_i - s_{ik} =0

(6)
kpik1=0 \sum_k p_{ik} -1 =0

(7)
piksik=0 p_{ik}s_{ik} = 0

(8)
pik,sik0 p_{ik},s_{ik} \ge 0

Tomando (5):

(9)
pikμ1=2μλi+sikdik p_{ik}^{\mu-1} = \frac{2}{\mu} \frac{ \lambda_i + s_{ik}}{d_{ik}}

Ahora, haremos una “apuesta”, asumiremos que el valor óptimo del multiplicador de Lagrange de la nonegatividad será sik=0s_{ik} =0. Luego, por (7) y (8) debemos obtener una fórmula para la membrecia que satisfaga estrictamente pik>0p_{ik} >0. Si la suposición no es correcta, la fórmula que obtengamos para pikp_{ik} no garantizará que ésta sea estrictamente positiva.

Entonces, asumiendo que sik=0s_{ik}^\ast =0, (9) se reduce a:

pikμ1=2μλidik p_{ik}^{\mu-1} = \frac{2}{\mu} \frac{ \lambda_i}{d_{ik}}
y tenemos que

(10)
pik=[2μλidik]1μ1 p_{ik} = \left[ \frac{2}{\mu} \frac{ \lambda_i}{d_{ik}}\right]^{\frac{1}{\mu-1}}

Sumando sobre kk y aplicando (6):

(11)
k[2μλidik]1μ1=1λi1μ1k[2μ dik]1μ1=1\sum_k \left[ \frac{2}{\mu} \frac{ \lambda_i}{d_{ik}}\right]^{\frac{1}{\mu-1}} =1 \\ \lambda_i^{\frac{1}{\mu-1}} \sum_k \left[ \frac{2}{\mu \, d_{ik}}\right]^{\frac{1}{\mu-1}} =1
y tenemos que

(12)
λi=[1k[2μ dik]1μ1]μ1 \lambda_i = \left[ \frac{1}{ \sum_k \left[ \frac{2}{\mu \, d_{ik}}\right]^{\frac{1}{\mu-1}}} \right]^{\mu-1}

Es posible notar que λi>0\lambda_i >0, y sustituyendo en (9) tendremos pik>0p_{ik} >0. Luego, fué correcto suponer sik=0s_{ik}=0.

Procedamos a hacer la sustitución de (12) en (9):

(13)
pik=[2μ1dik]1μ1[1q[2μ1diq]1μ1] p_{ik} = \left[ \frac{2}{\mu} \frac{1}{d_{ik}}\right]^{\frac{1}{\mu-1}} \left[ \frac{1}{ \sum_{q} \left[ \frac{2}{\mu} \frac{1}{d_{iq}}\right]^{\frac{1}{\mu-1}}} \right]

Un caso particularmente interesante ocurre para μ=2\mu =2:

(14)
pik=1dikq1diq p_{ik} = \frac{ \frac{1}{d_{ik}} }{ \sum_{q} \frac{1}{d_{iq}} }

Algoritmo de Solución Fuzzy K-Means

La estrategia de solución consiste en


Inicializar para los centroides mm. Entonces

Iterar hasta m(t)m(t1)τ\| m^{(t)} -m^{(t-1)} \| \le \tau (donde τ\tau es un umbral propuesto):

  1. Calcular el cuadrado de las distancias Eicideanas: dikd_{ik} con (3).
  2. Calcular pikp_{ik} usando (13).
  3. Actualizar los centroides mkm_k usando (4).

Terminar con la asignación de clases ci=arg maxk  pikc_{i} = \underset{k}{\arg\,\max} \; p_{ik}.


Ejercicios.

Derive las versiones del algoritmo para:

a) Usar ximkAk=(ximk)Ak(ximk)\| x_i- m_k \|_{A_k} = (x_i- m_k)^\top A_k (x_i- m_k) la norma inducida por la matrix de pesos simétrica positiva definida ARm×mA \in\mathbb{R}^{m \times m}. Con Ak=Σk1A_k= \Sigma^{-1}_k la matriz de covarianza que puede ser recalculada:

Σk=1m1i(ximk)(ximk)pikμ \Sigma_k = \frac{1}{m-1} \sum_i (x_{i}-m_{k})^\top (x_{i}-m_{k}) p^\mu_{ik}

b) Para el caso límite μ1{\mu \rightarrow 1}.

K-Medoides

Un variante de Fuzzy K-Medias (FKM) es K-Medoides.

K-Medoides consiste en generalizar el método para datos en espacios donde la distancia Eclideana no esta definida; pero si tenemos definida una disimilaridad.

Dado que no se tienen definida la distancia Euclideana, no es posible calcular una media.

El método selecciona la medoide, que es el dato con la menor suma de disimilaridades a los miembros de la misma clase (similarmente a como se motiva K-Medias).

El algorithmo de K-Medoides esta dado por


Inicializar aleatoriamente las medoides mm usando kk datos.

Iterar hasta {m(t)}{m(t1)}=\{ m^{(t)} \} \setminus \{m^{(t-1)} \} = \emptyset:

  1. Calcular las disimilaridades dikd_{ik}.
  2. Calcular ci=arg mink  dikc_{i} = \underset{k}{\arg\,\min} \; d_{ik}.
  3. Actualizar las medoides, para la clase k:
    i=arg mini  {j:ci,cj=kdij} i^* = \underset{i}{\arg\,\min} \; \left\{ \sum_{ j : c_i, c_j = k} d_{ij} \right\}
    Luego mk=xim_k=x_{i^*}

Terminar con la asignación de clases cic_{i}.