Evidencia de la semana:
- El avance en código o análisis.
- El avance de ésta semana en redacción de tesis consiste en redactar una versión preliminar del capítulo de conclusiones.
Tesis
El avance principal de esta semana fue redactar una versión preliminar del capítulo de conclusiones, en el que se resume toda la tesis, se habla de las contribuciones que realicé en dicho trabajo y al final una discusión de los resultados experimentales; para esta semana también se trabajó en lo siguiente:
- Se corrigieron errores de ortografía y redacción.
- Se corrigieron algunas citas en la bibliografía.
- Se agregaron notas en color rojo en algunos capitulos para indicar lo que hace falta agregar.
- Se corrigió capítulo de antecendentes.
- Se agregaron notas de pie de página.
Código
El avance en esta semana consistió en avanzar el diseño y sobre todo la parte de jquery de la herramienta, se agregaron funciones para obtener los materiales de manera dinámica, se decidió utilizar una navegación vertical y se comenzó a trabajar con las funciones para llenar las tablas mediante llamadas ajax.
Otra parte del avance se concentró en desarrollar la parte de análisis de agrupamiento o segmentación (clustering) en la parte de minería de datos, este avance aún no se ha terminado en cuanto a código. El avance en un principio se iba a realizar en la clasificación de patrones pero continuando con la lectura en minería de datos entendí que después de establecer relaciones y reglas en los datos, lo siguiente es el agrupamiento; con lo cual se obtienen grupos y estructuras en los datos que de cierta manera son similares.
El análisis de agrupamiento consiste en agrupar un conjunto de datos de tal manera que los objetos en el mismo grupo (cluster) son más similares entre sí que a las de otros grupos. El agrupamiento depende del tipo de segmentación que se quiera realizar. Dentro de las técnicas de clustering los algoritmos más usados podrían ser:
- K-means
- Kohonen
- Redes Bayesianas
Este es el avance que tengo al momento.
import numpy as np def converged(minimum, centroids): return ( set( [ tuple(a) for a in minimum ] ) == set( [ tuple(a) for a in centroids ] ) ) def cluster_points(X, minimum): clusters = {} for x in X: best_key = min( [ ( i[0], np.linalg.norm( x - minimum[ i[0] ] ) ) \ for i in enumerate( minimum ) ], key=lambda t:t[1] )[0] try: clusters[best_key].append(x) except KeyError: clusters[best_key] = [x] return clusters def reevaluate_centers(minimum, clusters): new_minimum = [] keys = sorted(clusters.keys()) for k in keys: new_minimum.append(np.mean(clusters[k], axis = 0)) return new_minimum def find_centers(X, K): centroids = random.sample(X, K) minimum = random.sample(X, K) while not converged(minimum, centroids): centroids = minimum clusters = cluster_points(X, minimum) minimum = reevaluate_centers(centroids, clusters) return(minimum, clusters)
Avances siguiente entrega
- Terminar el diseño de experimentos en la redacción y la solución propuesta.
- Terminar implementación de algoritmo K-means.
- Avance en código de clasificación por categorías de los datos.
No comments :
Post a Comment