document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import random
  2.  
  3. class neurona(object):
  4.   def __init__(self,cantidadEntradas=0,factorAprendizaje=0):
  5.     self.factorAprendizaje=factorAprendizaje
  6.     self.cantidadEntradas=cantidadEntradas
  7.          
  8.   def inicializaPesos(self):
  9.     pesos=[]
  10.     for x in range(self.cantidadEntradas):
  11.       pesos.append(random.uniform(0,1))
  12.     pesos.append(random.uniform(0,1))
  13.     print "Pesos Iniciales:\\n",pesos    
  14.     self.obtenerEntradas(pesos)
  15.    
  16.   def obtenerEntradas(self,pesos):
  17.     entradas=[]
  18.     salida=0
  19.    
  20.     while True:
  21.       opcion=raw_input("Desea continuar si o no: ")
  22.       if opcion=="no":
  23.         break
  24.       print "\\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  25.       for x in range(self.cantidadEntradas):            
  26.         entradas.append(int(raw_input("Ingrese la entrada: ")))
  27.       entradas.append(-1)
  28.       salidaDeseada=int(raw_input("Ingresa la salida deseada: "))
  29.       sumatoria = self.funcionActivacion(entradas,pesos)
  30.       if sumatoria>=0:
  31.         salida=1
  32.       elif sumatoria<0:
  33.         salida=-1
  34.       if salidaDeseada-salida!=0:
  35.         print "Salida Obtenida: ",salida
  36.         print "Pesos Nuevos:\\n"
  37.         for i,x in enumerate(pesos):
  38.           pesos[i]=pesos[i] +  (2.0 * self.factorAprendizaje) * (salidaDeseada * entradas[i])
  39.         print pesos
  40.         self.obtenerEntradas(pesos)
  41.       else:
  42.         print "Salida Obtenida: ",salida
  43.         entradas=[]
  44.      
  45.   def funcionActivacion(self,entradas,pesos):
  46.     sumatoria=0
  47.     for i,entrada in enumerate(entradas):
  48.       sumatoria=sumatoria+(entradas[i]*pesos[i])
  49.     return sumatoria
  50.    
  51. def main():
  52.   factorAprendizaje=raw_input("Ingresa el factor de aprendizaje: ")
  53.   cantidadEntradas=raw_input("Cuantas seran las entradas: ")
  54.   neurona1=neurona(int(cantidadEntradas),float(factorAprendizaje))
  55.   pesos=neurona1.inicializaPesos()
  56.      
  57. main()
');