Vous êtes sur la page 1sur 3

Project

1 - Clustering
Fecha de publicación: 5 de abril de, 2017
Fecha de entrega: 27 de abril de 2017

1. Introducción

El proyecto tiene como objetivo exponer al alumno al estudio de un algoritmo y
su implementación. En particular, se estudia el problema conocido como
clustering (agrupamiento en español) y sus soluciones más simples, aunque no
las mas eficientes.

El problema de agrupamiento toma como entrada de datos un conjunto de
objetos y los debe separar en grupos, de manera que se maximicen los criterios
de:
• Similaridad. Los objetos de un mismo grupo deben ser similares entre sí.
• Diferencia. Los objetos en grupos diferentes deben ser disimilares.

El algoritmo de clustering debe encontrar similaridades de acuerdo a las
características de los objetos y agruparlos en clusters. Este tipo de algoritmos
se conocen como de aprendizaje no supervizado, pues el algoritmo puede
producir un agrupamiento sin que nadie le indique, mediante ejemplos, como
agrupar.

Calidad del clustering.

Un buen algoritmo de agrupamiento debe producir clusters con alta similaridad
intra-clase (corta distancia) y baja similaridad inter-clase (mayor distancia).

Para este ejemplo, cada objeto estará representado por un vector d-dimensional
y la medida de de distancia a utilizar será la Distancia Euclidiana. El conjunto de
n objetos se le denominará D y el número de grupos a producir se le denomina k.
Estos datos son los argumentos del algoritmo de agrupamiento.

El algoritmo de agrupamiento particionará el conjunto D en k clusters, tal que la
suma del cuadrado de las distancias d(di, cj), para todo di que pertenece al cluster
Cj, con centroide cj.

Métodos heurísticos:
• K-medias
• K-medoids o PAM (Partition around medoids) (Kaufman &
Rousseeuw’87)


2. K-Means

El algoritmo de k-means se puede describir por el pseudocódigo siguiente:

k-means(D, k)
1. Particionar el conjunto D en k subconjuntos no vacíos
2. Calcular los centroides (i.e., puntos medios) de cada clase
3. Asignar cada objeto al cluster con el centroide más cercano
4. Si los centroides cambian, regresar a 2.

Ejemplo



3. Descripción del proyecto

1. Diseñar las estructuras de datos necesarias para implementar k-means.
2. Programar k-means en su lenguaje favorito.
3. Probar su implementación con el conjunto de datos europe.txt y 10 clusters.
Probar con
a. 100 datos
b. 1,000 datos
c. con el conjunto completo
4. Investigar una medida de calidad del cluster e implementarla
5. Elaborar un reporte del proyecto (de preferencia usando LaTeX), el cual debe
incluir:
a. Descripción del método utilizado
b. Descripción de las estructuras de datos utilizadas
c. Resultados de las pruebas mencionadas en 3
d. Probar la calidad de los agrupamientos producidos por su
implementación
e. Conclusiones del trabajo
6. Puntos extra. Implementar PAM (solo son unos pocos cambios).
7. Puntos extra. Realizar un análisis de complejidad del algoritmo k-means.

Equipos. Pueden trabajar solos o en equipos de dos personas.

Entregables. Empacar programas y reportes en archivo zip. Asegúrense de que
los archivos se descompriman a un directorio, no a archivos sueltos. Incluir los
nombres de todos los integrantes del equipo en todos los archivos.

Entrega. Enviar un reporte por equipo a mi correo electrónico
(juanf@umich.mx) antes de la media noche de la fecha de entrega.

Excepciones. Si necesitan hacer cambios a las especificaciones, equipos, o fecha
de entrega, contáctenme antes de la fecha de entrega.

Vous aimerez peut-être aussi