Clustering Flashcards

1
Q

Qué tipo de problemas es el que más comúnmente se asocia al clustering?

A

El llamado aprendizaje no supervisado, ya que permite, dado un conjunto de datos, encontrar clusters y de esta forma poder agruparlos bajo cierto criterio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explique el algoritmo de clustering jerárquico.

A
  • El algoritmo empieza considerando cada dato como un cluster.
  • En cada paso une los dos clusters más cercanos entre sí.
  • itera hasta qudar todos los datos en un solo cluster.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qué hiperparámetros hay que definir para el algoritmo de clusetering jerárquico? Ejemplifique

A
  • distancia a usar.
    Se usa la que mejor ajuste.
  • cómo calcular la distancia entre clusters.
    Se puede tomar:
  • distancia mínima entre dos puntos de cada cluster
  • distancia máxima entre dos puntos de cada cluster
  • el promedio de las distancias de todos los puntos de un cluster contra todos los puntos del otro cluster
  • la distancia entre los promedios de los puntos de cada cluster (centroides)
  • el método de Ward (Ward suggested a general agglomerative hierarchical clustering procedure, where the criterion for choosing the pair of clusters to merge at each step is based on the optimal value of an objective function. This objective function could be “any function that reflects the investigator’s purpose.”) [https://en.wikipedia.org/wiki/Ward%27s_method]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ventajas y desventajas de tomar distancia mínima entre dos puntos de cada cluster en clustering jerárquico.

A

Ventajas: Puede separar formas no elípticas de clusters, siempre y cuando la distancia entre clusters no sea demasiado grande.

Desventajas: sensibilidad al ruido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ventajas y desventajas de tomar distancia máxima entre dos puntos de cada cluster en clustering jerárquico.

A

Ventajas: se comporta bien con datos ruidosos.

Desventajas: tiene bias hacia clusters globulares y tiende a partir clusters grandes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Ventajas y desventajas de tomar el promedio de las distancias de todos los puntos de un cluster contra todos los puntos del otro cluster en clustering jerárquico.

A

Ventajas: se comporta bien con datos ruidosos.

Desventajas: tiene bias hacia clusters globulares.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qué desventaja tiene el clustering jerárquico?

A

Es sensible a los outliers.

En cada iteración hay que calcular la distancia entre cada par de clusters.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

De qué forma se puede evitar calcular las distancias entre cada par de clusters en clustering jerárquico?

A

Se puede encarar con LSH. Por cada cluster creado se calcula el centroide y se usa LSH para determinar cuáles juntar próximamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qué hiperparámetros recibe K-means?

A

Recibe un solo hp: k.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

centroide vs clusteroide

A

un clusteroide es un centroide que es además uno de los datos dados.

un centroide es el punto promedio de los puntos en un cluster dado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Describa el algoritmo K-means.

A
  • Se inicializan k centroides al azar.
  • Se asigna cada punto al cluster mas cercano.
  • Se recalculan los centroides.

Se demuestra que el algoritmo converge.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que problema tiene K-means y como se lo puede mitigar?

A

Al ser un algoritmo que encuentra un minimo local, es muy sensible a la posicion inicial del centroide.

Se lo puede mitigar haciendo varias corridas del algoritmo y quedandose con la version de menor dispersion.

Esto no es tan problematico si se piensa que luego de unas pocas iteraciones el resultado ya cambia muy poco, por lo que no es necesario correr el algoritmo hasta el final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describa el algoritmo K-means++.

A

Lo unico que cambia con respecto a k-means es que no inicializa los centroides al azar.

Se arranca inicializando un centroide. Para inicializar el segundo centroide se busca que el mismo este alejado del primero, por lo que a cada punto le es asignada una probabilidad de acuerdo a su distancia al perimer centroide y en base a dicha probabilidad se elgie el proximo centroide al azar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cual es el problema de k-means++ y como se lo mitiga?

A

El problema es que para datos masivos, debe realizar k iteraciones sobre los datos para elegir los centroides, lo cual es muy ineficiente.

La alternativa que existe en estos casos se denomina k-means parallel. En lugar de k se hacen log(k) pasadas, agregando en cada iteracion en lugar de 1, l centroides.
Finalmente, como se obitenen mas de k centroides, se definen los centroides finales clusterizando los candidatos a centroides ponderados por la probabilidad con la cual fueron seleccionados. Este paso se puede hacer con, por ejemplo, clustering jerarquico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Valor de k a utilizar y metricas usadas al respecto.

A

La forma de buscar k es mediante un Grid-Search con diferentes valores posibles.

Como métrica para evaluar la calidad de cada valor de k se puede usar un promedio de nuestra función de distorsión para varias iteraciones de K-Means o el diámetro promedio de los clusters.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Que diagramas se desprenden de Kmeans y que particularidad tienen?

A

Diagramas de Voronoi.
Este diagrama consiste en delimitar la frontera hasta la cual llega cada centroide.
El diagrama de Voronoi muestra a qué cluster quedarı́a asignado un punto nuevo que se quisiera agregar al set de datos sin correr de nuevo K-Means.
El tamaño de cada área no depende de la cantidad de puntos asociados al centroide sino de que tan aislado se encuentra el centroide respecto del resto, cuanto mas aislado mas grande será la superficie de su área.

17
Q

Que problema tiene KMeans con datos masivos? Como se mitiga este problema?

A

Cuando se trata de procesar datos masivos, el principal problema de K-Means es que requiere en cada iteración calcular el centroide más cercano a cada uno de los puntos y esta operación es costosa ya que hay que comparar cada punto contra cada centroide lo cual implica visitar todos los puntos del set de datos por cada iteración.
Con KMeans online.

18
Q

Que distingue a KMeans online?

A
  • procesa un punto por vez del set de datos
  • no necesita conocer todos los puntos antes de empezar
  • requiere un mı́nimo uso de memoria.
19
Q

KMeans online.

A

A partir de k centroides inicializados de alguna forma que es externa al algoritmo, por ejemplo al azar, se procesa cada punto asignándolo al centroide más cercano y luego se mueve ese centroide hacia el punto procesado de forma proporcional a la cantidad de puntos que tiene el cluster en total. Es necesario contar con un vector de k elementos en donde se irán contando cuántos puntos contiene cada cluster hasta el momento.

20
Q

Por que sucede que con KMeans online hay puntos que quedan en clusters distintos a los indicados por el diagrama de Voronoi que se obtiene con KMeans tradicional?

A

Esto es fácil de explicar ya que estos puntos fueron asignados originalmente a un cluster cuyo centroide se fue moviendo luego. La versión online de K-Means únicamente asigna una vez por punto, una vez que el punto fue asignado a un centroide permanece dentro de dicho cluster. Esto puede solucionarse, por supuesto, realizando mas de una iteración. En la segunda iteración los puntos que quedaron mal asignados en la primera pasada pasan al cluster que les corresponde.

21
Q

Soft KMeans.

A

Cada punto pertenece a todos los clusters y lo que determinamos en el algoritmo es el grado de pertenencia de cada punto a cada cluster o la probabilidad de que el punto pertenezca a cada cluster.

Cuanto más cerca está el punto del centroide mayor es su probabilidad. Para calcular estas probabilidades se pueden sumar todas las distancias y luego realizar 1-(dist/suma). De esta forma, la suma de todas las probabilidades para cada punto es igual a 1.

22
Q

Reduccion de dimensiones mediante KMeans.

A

Una posibilidad es representar a cada punto mediante su centroide mas cercano (hard Kmeans) o mediante una combinación afı́n de centroides. Los sistemas basados en coordenadas requieren de la base de K-Means para tener sentido, el objetivo es encontrar una forma de representar los datos en k dimensiones sin que sean necesarios los centroides.
Una forma simple de hacer esto es por cada punto calcular la distancia a cada uno de los k centroides y usar estas k distancias como k coordenadas por cada punto. Esto da una forma simple y directa de representar los datos en k dimensiones. Para corregir problemas de escala se puede usar una función que mapee la distancia al centroide x a un número entre 0 y 1.

Es muy sorprendente que estos features aprendidos por K-Means funcionan realmente muy bien como representación del set de datos. Es muy común que un algoritmo de clasificación funcione mejor con estos features que con los datos originales.

23
Q

Cuando falla KMeans?

A
  • Cuando los clusters tienen forma no-convexas
  • Cuando los clusters tienen distintos tamanos
  • Cuando clusters tienen distintas densidades
  • Cuando las distancias son binarias (redes-sociales)
24
Q

Que distingue a Clustering espectral?

A

Distingue formas no lineales con facilidad.

25
Q

Clustering espectral.

A
  1. Para los puntos X definir una matriz de afinidad:W
  2. Calcular la matriz laplaciana a partir de W: L
  3. Obtener los autovectores y autovalores de L
  4. Con los m autovectores menos significativos construir una matriz: U
  5. Normalizar U x filas: Y
  6. Aplicar K-means a la matriz Y
  7. Para cada punto de X asociarle el cluster que le asignamos a la fila correspondiente en Y
26
Q

Hiperparametros en Clustering espectral

A
  • El parámetro sigma en una de las fórmulas de W
  • La fórmula de L a usar
  • El número de autovectores (dimensiones) a usar
  • El número de clusters a formar
27
Q

CURE

A
  • Elegir un subconjunto de puntos al azar y agruparlos en “k” clusters usando clustering jerárquico. (Es necesario conocer “k”).
  • De cada cluster formado elegir “f” puntos representativos. Son los puntos del cluster que están más alejados entre sí.
  • Mover los puntos representativos un 20% hacia el centro del cluster.
  • Por cada punto que falta procesar asignarlo al cluster correspondiente al punto representativo más cercano.
28
Q

En que se basa DBScan?

A
  • Algoritmo de Clustering basado en densidades

- Idea: Un cluster es un conjunto “denso” de puntos.

29
Q

Que caracteriza a DBSCAN?

A
  • Detecta la cantidad de clusters automáticamente.

- También detecta “outliers”: puntos que no pertenecen a ningún cluster.

30
Q

Hiperparametros de DBSCAN.

A
  • Distancia mínima entre dos puntos para estar en un mismo cluster. “e”
  • Cantidad mínima de puntos vecinos a la distancia correcta para poder generar nuevos clusters. “k”
31
Q

Algoritmo DBSCAN.

A
  • Empezar con un punto cualquiera.
  • Si no pertenece a un cluster:
    • Si tiene al menos “k” puntos a distancia menor a “e” entonces iniciar un nuevo cluster uniendo dichos puntos
  • Si pertenece a un cluster:
    • Unir los puntos a distancia menor a “e” al mismo cluster.
32
Q

Problemas de DBSCAN.

A
  • Densidades variables

- Puede que no exista “e” que funcione bien.

33
Q

Pros/contras de DBSCAN

A

Pros:

  • Detecta # de clusters
  • Detecta clusters no lineales
  • Detecta outliers
  • Eficiente
  • Paralelizable
  • Online

Contras:

  • Diferentes densidades=FAIL
  • Encontrar “e” y “k” óptimos. (k>=dims+1)
34
Q

Complejidad DBSCAN.

A
  • Como encontrar los puntos a distancia menor o igual a “e” por cada punto.
  • Es O(n^2) por default.
  • Pero puede usarse un índice espacial para llevarlo a O(n log n)