-
Notifications
You must be signed in to change notification settings - Fork 0
/
model_fitting.py
75 lines (56 loc) · 1.85 KB
/
model_fitting.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
import numpy as np
from funkcije import *
f = open ('podaci.txt','r')
lines = f.readlines()
n_of_lines=len(lines)
print n_of_lines
X=[] #lista ciji su elementi liste iz koje izvlacim informaciju tko je domacin (1), tko je gost(-1)
Y1=[] #Home goals
Y2=[] #Away goals
klubovi={14:'Newcastle', 1:'Liverpool', 19:'Man United', 2:'Norwich',
9:'Man City', 15:'Southampton', 6:'West Ham', 10:'Aston Villa',
0:'Arsenal', 8:'Crystal Palace', 17:'Cardiff', 3:'Sunderland',
12:'Fulham', 13:'Hull', 11:'Everton', 16:'Stoke', 5:'West Brom',
4:'Swansea', 7:'Chelsea', 18:'Tottenham'}
broj_kola=20 #na koliko kola zelimo trenirati
broj_utakmica=10*broj_kola #svako kolo ima 10 utakmica
for i in xrange(1,broj_utakmica):
line=lines[i]
line=line.split(',')
x = [0]*20
home_team=line[5]
away_team=line[6]
x[int(home_team)]=1
x[int(away_team)]=-1
y1=[]
y2=[]
y1.append(np.float(line[8]))
y2.append(np.float(line[9]))
X.append(x)
Y1.append(y1)
Y2.append(y2)
#Ucitali smo podatke o 200 utakmica
napad=[0.]*20 #koeficijenti napada i obrane. broj golova = napad[i]-obrana[j] i obratno
obrana=[0.]*20
error=calculate_error(X,Y1,Y2,napad,obrana)
print 'Starting error ', error
#namjestanje koeficijenata
for iteration in xrange(200):
for klub in xrange(20):
napad_change=calculate_change_in_attack(X,Y1,Y2,napad,obrana,klub)
napad[klub]+=napad_change
obrana_change=calculate_change_in_defense(X,Y1,Y2,napad,obrana,klub)
obrana[klub]+=obrana_change
if(iteration%50==0):
print calculate_error(X,Y1,Y2,napad,obrana)
print '----------'
print 'Finishing error '
print calculate_error(X,Y1,Y2,napad,obrana)
#print napad
#print obrana
koeficijenti_napad=open( 'koeficijenti_napad.txt' , 'w+' )
koeficijenti_obrana=open( 'koeficijenti_obrana.txt' , 'w+' )
for koef in napad:
koeficijenti_napad.write("%s\n" % koef)
for koef in obrana:
koeficijenti_obrana.write("%s\n" % koef)