Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import csv
- archivo = open("datafagget.csv")
- reader = csv.reader(archivo, delimiter=',')
- data = []
- for row in reader:
- data.append(row)
- print "Ready"
- def similitud(p, c):
- """ Devuelve la similitud de coseno entre un punto p y el centroide c """
- q1 = p
- q2 = c
- producto_escalar = 0
- suma_q1 = 0
- suma_q2 = 0
- for i in range(10):
- producto_escalar = producto_escalar + float(q1[i]) * float(q2[i])
- suma_q1 = suma_q1 + math.pow(float(q1[i]), 2)
- suma_q2 = suma_q2 + math.pow(float(q2[i]), 2)
- return producto_escalar / math.sqrt(suma_q1 * suma_q2)
- def nuevo_centroide(grupo):
- centroide = []
- centroide.append(moda(grupo,0))
- centroide.append(moda(grupo,1))
- centroide.append(moda(grupo,2))
- centroide.append(moda(grupo,3))
- centroide.append(moda(grupo,4))
- centroide.append(moda(grupo,5))
- centroide.append(moda(grupo,6))
- return centroide
- def printuh(grupo):
- for i in range(len(grupo)):
- print (grupo[i][10]),
- def moda(lista, index):
- temp = []
- for i in range(len(lista)):
- temp.append(lista[i][index])
- mientras = [0,0]
- for i in range(10):
- meh = temp.count(i)
- if meh > mientras[1]:
- mientras[0] = i #el valor
- mientras[1] = meh #repeticiones
- return mientras[0]
- #Grupos por defecto
- grupo01 = []
- grupo02 = []
- grupo03 = []
- grupo04 = []
- grupo05 = []
- #Centroides por defecto
- uno = data[1]
- dos = data[51]
- tres = data[76]
- cuatro = data[89]
- cinco = data[140]
- iteraciones = 1
- for it in range(iteraciones):
- for i in range(len(data)):
- if similitud(data[i], uno) > similitud(data[i], dos):
- grupo01.append(data[i])
- elif similitud(data[i], dos) > similitud(data[i], tres):
- grupo02.append(data[i])
- elif similitud(data[i], tres) > similitud(data[i], cuatro):
- grupo03.append(data[i])
- elif similitud(data[i], cuatro) > similitud(data[i], cinco):
- grupo04.append(data[i])
- else:
- grupo05.append(data[i])
- print "\n\n----------------------\Iteracion #" + str(it+1)
- print "\n\nLos centroides son:"
- print uno
- print dos
- print tres
- print cuatro
- print cinco
- print "\n\nEl grupo de grupo01 quedo asi:"
- printuh(grupo01)
- print "\n\nEl grupo de grupo02 quedo asi:"
- printuh(grupo02)
- print "\n\nEl grupo de grupo03 quedo asi:"
- printuh(grupo03)
- print "\n\nEl grupo de grupo04 quedo asi:"
- printuh(grupo04)
- print "\n\nEl grupo de grupo05 quedo asi:"
- printuh(grupo05)
- del grupo01[:]
- del grupo02[:]
- del grupo03[:]
- del grupo04[:]
- del grupo05[:]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement