def predict(self, entrada): # Retorna saida basiado na entrada entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma = Matriz.array(soma) soma[0] -= self.bias saida = Hebb(soma[0]) return saida
def treino(self, entrada, saida): entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma.data[0][0] -= self.bias erro = saida - soma.data[0][0] delta = erro * self.taxa self.bias = delta * -1 delta = Matriz.mult_escalar(entrada, delta) self.pesos = Matriz.soma(self.pesos, delta)
def EQM(self, padroes, entrada, saida): eqm = 0 x = 0 pesos_t = Matriz.transposta(self.pesos) for i in entrada: i = Matriz.matrizLinha(i) u = Matriz.mult(i, pesos_t) u = u.data[0][0] - self.bias erro = saida[x] - u x += 1 eqm += erro**2 eqm = eqm / padroes return eqm eqm = soma / padroes return eqm
def treino(self, entrada, saidaFinal): # Verificando Resultado entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma = Matriz.array(soma) soma[0] -= self.bias saida = Hebb(soma[0]) erro = False # Atualizando Pesos if (saida != saidaFinal): taxaErro = saidaFinal - saida delta = Matriz.mult_escalar(entrada, self.taxa * taxaErro) self.pesos = Matriz.soma(delta, self.pesos) self.bias += (taxaErro * self.taxa * -1) erro = True return erro
def predict(self, entrada): entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma.data[0][0] -= self.bias return Hebb(soma.data[0][0])