IA Clustering Methods
IA Clustering Methods
IA Clustering Methods
1. K-means...............................................................................................................................................3
1.1. Funcionamiento y matemática detrás.........................................................................................3
1.2. Implementación...........................................................................................................................5
1.3. Aplicaciones.................................................................................................................................6
1.4. Parámetros..................................................................................................................................7
1.5. Ejemplo K-means segmentación de erupciones..........................................................................9
2. Afinity Propagation............................................................................................................................12
2.1. Funcionamiento y matemática detrás.......................................................................................12
2.1.1. Matriz de similitud:............................................................................................................13
2.1.2. Matriz de responsabilidad:................................................................................................15
2.1.3. Matriz de disponibilidad:...................................................................................................15
2.1.4. Matriz de criterios..............................................................................................................17
2.2. Aplicación..................................................................................................................................18
2.3. Parámetros................................................................................................................................18
2.4. Ejemplo con código....................................................................................................................19
3. Mean Shift.........................................................................................................................................20
3.1. Funcionamiento y matemática detrás.......................................................................................20
3.2. Aplicación..................................................................................................................................23
3.3. Parámetros................................................................................................................................24
3.4. Ejemplo de aplicación: segmentación de imágenes...................................................................25
4. Spectral clustering.............................................................................................................................28
4.1. Funcionamiento y matemática detrás.......................................................................................28
4.2. Aplicación..................................................................................................................................31
4.3. Parámetros................................................................................................................................31
4.4. Implementación.........................................................................................................................33
5. OPTICS...............................................................................................................................................38
5.1. Funcionamiento y matemática detrás.......................................................................................39
5.2. Aplicación..................................................................................................................................41
5.3. OPTICS VS DBSCAN....................................................................................................................43
5.4. Parámetros................................................................................................................................43
1. K-means
Calcula la suma de la distancia al cuadrado entre los puntos de datos y todos los
centroides.
Asigna a cada punto de datos al grupo más cercano (centroide).
Calcula los centroides para los grupos tomando el promedio de todos los puntos
de datos que pertenecen a cada grupo.
El enfoque que kmeans sigue para resolver el problema se llama Expectación-
Maximización. El E-step es asignar los puntos de datos al grupo más cercano. El paso
M está calculando el centroide de cada grupo.
A continuación, se muestra un desglose de cómo podemos resolverlo
matemáticamente:
La función objetivo es:
donde wik = 1 para el punto de datos xi si pertenece al clúster k; de lo contrario, wik =
0. Además, μk es el centroide del grupo de xi.
Es un problema de minimización de dos partes. Primero minimizamos J w.r.t. wik y treat
μk fijo. Luego minimizamos J w.r.t. μk y tratar wik fijo. Técnicamente hablando,
diferenciamos a J w.r.t. wik primero y actualice las asignaciones de clúster (E-step).
Luego diferenciamos J w.r.t. μk y recalcule los centroides después de las asignaciones
de clúster del paso anterior (paso M). Por lo tanto, E-step es:
En otras palabras, asigne el punto de datos xi al grupo más cercano juzgado por su
suma de la distancia al cuadrado del centroide del grupo.
Y M-step es:
Lo que se traduce en volver a calcular el centroide de cada grupo para reflejar las
nuevas asignaciones.
Algunas cosas a tener en cuenta aquí:
Dado que los algoritmos de agrupamiento que incluyen kmeans utilizan
mediciones basadas en la distancia para determinar la similitud entre los puntos
de datos, se recomienda estandarizar los datos para que tengan una media de
cero y una desviación estándar de uno, ya que casi siempre las características
en cualquier conjunto de datos tendrían diferentes unidades de medida como
edad vs ingresos.
Dada la naturaleza iterativa de kmeans y la inicialización aleatoria de los
centroides al comienzo del algoritmo, las diferentes inicializaciones pueden dar
lugar a diferentes agrupaciones, ya que el algoritmo de kmeans puede atascarse
en un óptimo local y puede no converger al óptimo global. Por lo tanto, se
recomienda ejecutar el algoritmo utilizando diferentes inicializaciones de
centroides y elegir los resultados de la ejecución que produjeron la suma más
baja de la distancia al cuadrado.
La asignación de ejemplos no está cambiando es lo mismo que no hay cambio
en la variación dentro del clúster:
1.2. Implementación
Aquí usaremos una implementación simple de kmeans para ilustrar algunos conceptos.
Luego, utilizaremos la implementación de sklearn que es más eficiente, nos
encargamos de muchas cosas.
impor
t
numpy
as np
from numpy.linalg import norm
class Kmeans:
'''Implementing Kmeans algorithm.'''
1.3. Aplicaciones
El algoritmo kmeans es muy popular y se utiliza en una variedad de aplicaciones, como
la segmentación del mercado, la agrupación de documentos, la segmentación de
imágenes y la compresión de imágenes, etc. El objetivo generalmente cuando nos
sometemos a un análisis de conglomerados es:
Obtener una intuición significativa de la estructura de los datos con los que
estamos tratando.
Agrupar y luego predecur dónde se construirán diferentes modelos para
diferentes subgrupos si creemos que existe una amplia variación en los
comportamientos de diferentes subgrupos. Un ejemplo de esto es agrupar a los
pacientes en diferentes subgrupos y construir un modelo para cada subgrupo
para predecir la probabilidad del riesgo de sufrir un ataque cardíaco.
1.4. Parámetros
n_clustersint, por defecto = 8
El número de grupos para formar, así como el número de centroides para generar.
verboseint, default = 0
Modo de verbosidad.
El elemento con el valor de criterio más alto en cada fila se designaría como un
ejemplo. Los elementos correspondientes a las filas que comparten el mismo ejemplar
se agrupan.
En nuestro caso, Alice, Bob, Cary pertenecen a un grupo y Doug y Edna a otro.
Nota: Dado que se utiliza una métrica de distancia para calcular las similitudes, se
recomienda estandarizar los parámetros antes de la agrupación utilizando Propagación
de afinidad.
2.2. Aplicación
Los inventores de affinity propagation demostraron que es mejor para ciertas tareas de
visión por computadora y biología computacional, p. agrupamiento de imágenes de
rostros humanos e identificación de transcripciones reguladas, que k-means, incluso
cuando k-means se permitió muchos reinicios aleatorios e inicializados utilizando PCA.
Un estudio que comparó la propagación de afinidad y la agrupación de Markov en la
partición del gráfico de interacción de proteínas encontró que la agrupación de Markov
funciona mejor para ese problema. Se ha propuesto una variante semi-supervisada
para aplicaciones de minería de texto.
2.3. Parámetros
dampingfloat, predeterminado = 0.5
El factor de amortiguamiento (entre 0.5 y 1) es el grado en que el valor actual se
mantiene en relación con los valores entrantes (ponderado 1 - amortiguamiento). Esto
para evitar oscilaciones numéricas al actualizar estos valores (mensajes).
convergence_iterint, default = 15
Número de iteraciones sin cambios en el número de clústeres estimados que detiene la
convergencia.
af = AffinityPropagation(preference=-50)clustering = af.fit(X)
plt.scatter(X[:,0], X[:,1], c=clustering.labels_, cmap='rainbow',
alpha=0.7, edgecolors='b')
3. Mean Shift
Mean Shift es un algoritmo de agrupamiento jerárquico. A diferencia de los algoritmos
supervisados de aprendizaje automático, la agrupación intenta agrupar los datos sin
haber sido entrenados primero en los datos etiquetados. La agrupación se utiliza en
una amplia variedad de aplicaciones, como motores de búsqueda, rankings
académicos y medicina. A diferencia de los K-Means, cuando se usa Mean Shift, no
necesita saber de antemano el número de categorías (grupos). La desventaja de Mean
Shift es que es computacionalmente costoso: O (n²).
x ti +1=m( x ti )
Dónde N(xi) es el vecindario de muestras dentro de una distancia dada alrededor de xi
y m es el vector de desplazamiento medio que se calcula para cada centroide que
apunta hacia una región del aumento máximo en la densidad de puntos. Esto se
calcula utilizando la siguiente ecuación, actualizando efectivamente un centroide para
que sea la media de las muestras dentro de su vecindad:
∑ ❑ K ( x j−x i) x j
x j ∈ N( xi )
m(x i)=
∑ ❑ K ( x j−x i )
x j ∈ N (x i )
PASO 1: Elija cualquier punto aleatorio y coloque la ventana en ese punto de datos.
PASO 2: Calcule la media de todos los puntos que se encuentran dentro de esta ventana.
3.2. Aplicación
Agrupación
Considere un conjunto de puntos en un espacio bidimensional. Suponga una ventana
circular centrada en C y que tenga un radio r como núcleo. El cambio medio es un
algoritmo de escalada que implica cambiar este núcleo iterativamente a una región de
mayor densidad hasta la convergencia. Cada cambio está definido por un vector de
cambio medio. El vector de desplazamiento medio siempre apunta hacia la dirección
del aumento máximo de la densidad. En cada iteración, el núcleo se desplaza al
centroide o la media de los puntos dentro de él. El método para calcular esta media
depende de la elección del núcleo. En este caso, si se elige un núcleo gaussiano en
lugar de un núcleo plano, a cada punto se le asignará primero un peso que decaerá
exponencialmente a medida que aumente la distancia desde el centro del núcleo. En la
convergencia, no habrá una dirección en la que un cambio pueda acomodar más
puntos dentro del núcleo.
Rastreo
El algoritmo de cambio medio se puede usar para el seguimiento visual. El algoritmo
más simple de este tipo crearía un mapa de confianza en la nueva imagen basado en
el histograma de color del objeto en la imagen anterior, y usaría el desplazamiento
medio para encontrar el pico de un mapa de confianza cerca de la posición anterior del
objeto. El mapa de confianza es una función de densidad de probabilidad en la nueva
imagen, asignando una probabilidad a cada píxel de la nueva imagen, que es la
probabilidad de que ocurra el color del píxel en el objeto de la imagen anterior.
3.3. Parámetros
Bandwidthfloat: optional
Ancho de banda utilizado en el núcleo RBF.
Si no se proporciona, el ancho de banda se estima utilizando
sklearn.cluster.estimate_bandwidth; Consulte la documentación de esa función para
obtener sugerencias sobre la escalabilidad (consulte también las Notas a continuación).
bin_seedingboolean, opcional
Si es verdadero, las ubicaciones iniciales del núcleo no son ubicaciones de todos los
puntos, sino más bien la ubicación de la versión discretizada de puntos, donde los
puntos se agrupan en una cuadrícula cuyo grosor corresponde al ancho de banda.
Establecer esta opción en Verdadero acelerará el algoritmo porque se inicializarán
menos semillas. valor predeterminado: Falso Ignorado si el argumento de semillas no
es Ninguno.
min_bin_freqint: opcional
Para acelerar el algoritmo, acepte solo aquellos contenedores con al menos
min_bin_freq puntos como semillas. Si no está definido, establezca en 1.
Cada punto (p. Ej., Píxel) eventualmente cambió a uno de los siete modos (p. Ej., Picos
de superficie de KDE). Mostrar la imagen usando el color de estos siete modos produce
lo siguiente.
4. Spectral clustering
SpectralClustering realiza una incrustación de baja dimensión de la matriz de afinidad
entre las muestras, seguida de la agrupación, por ejemplo, por KMeans, de los
componentes de los vectores propios en el espacio de baja dimensión. Es
especialmente eficiente desde el punto de vista computacional si la matriz de afinidad
es escasa y el solucionador de amg se usa para el problema del valor propio (tenga en
cuenta que el solucionador de amg requiere que el módulo pyamg esté instalado).
Paso 1:
Una buena manera de representar un conjunto de puntos de datos x1,. . . x N tiene la
forma del gráfico de similitud G = (V, E).
Hay diferentes formas de construir un gráfico que represente las relaciones entre los
puntos de datos:
1. Gráfico de vecindad ε: cada vértice está conectado a vértices que caen dentro
de una bola de radio ε donde ε es un valor real que debe ajustarse para captar la
estructura local de datos.
2. Gráfico de vecino más cercano a k: cada vértice está conectado a sus vecinos
más cercanos a k donde k es un número entero que controla las relaciones
locales de datos.
Paso 2:
Ahora que tenemos nuestro gráfico, necesitamos formar su matriz laplaciana asociada.
N.B .: Las herramientas principales para la agrupación espectral son las matrices
laplacianas gráficas.
Todo lo que tenemos que hacer ahora es calcular los vectores propios u_ j de L.
Paso 3:
Ejecutar k-means:
4.2. Aplicación
La agrupación espectral tiene muchas aplicaciones en aprendizaje automático, análisis exploratorio de
datos, computadora Visión y procesamiento del habla. La mayoría de las técnicas asumen de manera
explícita o implícita una estructura métrica o de similitud en el espacio de configuraciones, que luego
utilizan los algoritmos de agrupamiento. El éxito de tales algoritmos depende en gran medida de la
elección de la métrica, pero esta elección es generalmente no tratada como parte del problema de
aprendizaje. Por lo tanto, la selección manual de funciones y el tiempo
4.3. Parámetros
n_clustersinteger, opcional
La dimensión del subespacio de proyección.
n_neighboursinteger
Número de vecinos a utilizar al construir la matriz de afinidad utilizando el método de
vecinos más cercanos. Ignorado por afinidad = 'rbf'.
4.4. Implementación
5.2. Aplicación
Una vez que hayamos hecho esto para cada punto, calcularemos el Factor Outlier.
Para hacerlo, tome el promedio de las relaciones de los MinPts-vecinos a ese punto
específico, como se muestra a continuación.
5.4. Parámetros
min_samplesint> 1 o flotante entre 0 y 1 (predeterminado = 5)
El número de muestras en un vecindario para que un punto sea considerado como un
punto central. Además, las regiones empinadas hacia arriba y hacia abajo no pueden
tener más de min_samples puntos no empinados consecutivos. Expresado como un
número absoluto o una fracción del número de muestras (redondeado para ser al
menos 2).