-
Notifications
You must be signed in to change notification settings - Fork 0
/
perceptroninput.py
78 lines (69 loc) · 2.08 KB
/
perceptroninput.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import random
import time
start = time.clock()
w = [
0,
0,
0,
0,
0,
]
bias = 1
# Saida 1 = gripe, saida 0 = resfriado
entradas = [
[1, 0, 1, 1, 1],
[0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
[0, 1, 1, 1, 0],
[0, 0, 1, 1, 1],
[0, 0, 0, 1, 0],
]
def teste(i):
somatorio = bias*w[0]+entradas[i][0]*w[1]+entradas[i][1]*w[2]+entradas[i][2]*w[3]+entradas[i][3]*w[4]
return somatorio
def testeinput(a, b, c, d):
somatorio = bias*w[0]+a*w[1]+b*w[2]+c*w[3]+d*w[4]
return somatorio
def learning(p, erro):
for y in range (4):
w[y+1] = w[y+1] + (erro * bias * entradas[p][y])
flag = 0
for p in range (500):
if(flag < 2):
for p in range(6):
print('####### Aprendizado ######\n')
tst = teste(p)
if(tst > 0):
saida = 1
elif(tst <= 0):
saida = 0
print('virus', entradas[p][0], 'peso 1 ', w[1])
print('bacteria', entradas[p][1], 'peso 2 ', w[2])
print('dor de cabeca', entradas[p][2], 'peso 3 ', w[3])
print('corisa', entradas[p][3], 'peso 4 ', w[4])
if(saida == 1):
print('###gripe### ', saida)
elif(saida == 0):
print('###resfriado### ', saida)
print('saida esperada', entradas[p][4])
print('####### Aprendizado ######\n')
if(saida != entradas[p][4]):
learning(p, (entradas[p][4] - saida))
print('Aprendizado!\n')
flag = flag + 1
now = time.clock()
print('Rodando por ', int(now - start), 'segundos')
print('Aprendizado feito', flag, 'vezes')
#time.sleep(0.5)
else:
print('\nDigite os dados\n')
a = input('virus\n')
b = input('bacteria\n')
c = input('dor de cabeca\n')
d = input('corisa\n')
resultado = int(testeinput(int(a), int(b), int(c), int(d)))
if(resultado > 0):
print('!!!gripe (1)')
elif(resultado <= 0):
print('!!!resfriado(0)')
time.sleep(1)