Resumen del proyecto:
La propuestas sigue siendo parecidas a las que ya se había comentado anteriormente, los unicos cambios que fuerón realizados respecto a la idea fue que en lugar de clasificar en las categorias de triste y alegre ya que el tiempo se nos viene juntando, se optó por categorizar por el tipo de ritmo que tiene la musica es decir lento, rapido, etc.
Avance con respecto a la planeación:
Con forme se fue pleando el proyecto el equipo iba bien al principio nos juntamos para ver como se avanzaria y el rumbo que tomaría cada miembro del equipo respecto al desarrollo del software.
Debido a las discuciones de la nueva forma de clasificar, se decidio continuar con lo mismo ya que no fue mucho el cambio en la idea todo sigue siendo orientado a lo mismo.
¿Que se hizo y que fallo?
Se tratarón de instalar las librerias que ya se habían investigado, pero hubo fallos ya que no se encontraban o al momento de descargarlas marcaba algún error, por lo tanto mientras se trataba de arreglar y/o buscar otras alternativas se decidío comenzar con una base .
Esta base sería k-means la forma en la que se piensa hacer la clasificación de la musica por agrupamiento, así que comenzamos a hacer en cierta forma lo que comenzará a hacer los k-means.
En cuanto a las herramientas que aun no hemos podido instalar lo pensamos resolver en estos días para poder continuar con el proyecto y poderlo finalizar de forma correcta.
Otro problema que optuvo durante el transcurso del proyecto, fue que no se sabía por donde comenzar los k-means asi que para poder resolver este obstáculo el equipo comenzo a leer articulos relacionados con k-means y también se vierón algunos ejemplos de como se podían utilizar.
Codigo:
un poco del programa de 'k-means' que realizamos se muestra acontinuación
algunas de las partes más importantes de la realización del codigo.
la forma en la que calculamos la posición es con este método:
def Calcular_posicion (datos, posicion,cluster):
NValor=obtener_cluster(datos,cluster)
for n, position in posicion.items():
if not NValor.has_key(n):
posicion[n]=0
else:
posicion=[n]=Kmeans_avg(NValor[n])
return posicion
también otra parte importante del codigo que se ha realizado es designar la posición que son con unas formulas:
def designarp(datos,n):
peq=min(datos)
gran=max(datos)
num=ceil((abs(gran - peq)*1.0)/n)
posicion=OrderedDict()
while k>0:
k-=1
posicion[n]=peq+num*n
return posicion