Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Rneuronal(object):
- def __init__(self, peso=None, umbral=0.5):
- self.umbral = umbral
- self.peso = peso
- self.verbose = False
- def salidas(self, vector1):
- if self.total(vector1) < self.umbral:
- return 0
- else:
- return 1
- def entrenador(self, entrenar, alpha=0.1, despues=100):
- if self.peso is None:
- self.peso = [0 for _ in range(len(entrenar.keys()[0]))]
- n = 0
- actua = True
- while(actua):
- n += 1
- actua = False
- for xy, a in entrenar.items():
- y = self.salidas(xy)
- if(y != a):
- self.Apeso(alpha, a, y, xy)
- self.A_umbral(alpha, a, y)
- actua = True
- if despues is not None and n >= despues:
- break
- return n
- def prueba(self, entrenar):
- for xy, a in entrenar.items():
- if(self.salidas(xy) != a):
- return False
- return True
- def total(self,vector1):
- total = 0
- for y,x in zip(self.peso, vector1):
- total += (y * x)
- return total
- def Apeso(self, alfa, a, y, xy):
- for i in range(len(self.peso)):
- self.peso[i] = (alfa * (a - y) * xy[i]) + self.peso[i]
- def A_umbral(self, alfa, a, y):
- self.umbral = (alfa * (a - y) * -1) + self.umbral
- negacion= {
- (0,0): 1,
- (0,1): 1,
- (1,0): 1,
- (1,1): 0
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement