Skip to content

iamhankai/euro2016predictor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Euro Cup 2016 Predictor

Simply, this predictor is based on typical "feature+classifier" machine learning framework.

  • feature: ELO rating, win/draw/lose rate, goal/lost-goal since 1920
  • label: goal difference between team1 and team2
  • classifier: Random Forest Classifier

The code is a little in chaos due to limited time. Maybe I'll update it.

Run

environment: Python2.7 with scikit-learn package installed;

  1. run group_stage.py to get group stage results (./result/nation_point.csv and ./result/promoted_nation.csv);
  2. run knockout_stage.py to get final results (./result/knockout_result.csv).

Prediction Results

Champion

Germany Germany

Knockout Stage

round team1 team2 result
16 france ukraine 3
16 spain italy 1
16 england romania 1
16 portugal ireland 3
16 germany romania 2
16 belgium czechia 1
16 switzerland poland 2
16 slovakia austria 1
8 france spain 1
8 england portugal 3
8 germany belgium 1
8 switzerland slovakia 1
4 france england 1
4 germany switzerland 2
2 france germany -1

Group Stage

Standings

group team points goal difference
a switzerland 7 3
a france 5 1
a romania 4 1
a albania 0 -5
b england 5 3
b slovakia 5 2
b wales 2 -2
b russia 2 -3
c germany 7 4
c ukraine 4 -1
c poland 4 -1
c northern ireland 1 -2
d spain 9 3
d czechia 4 1
d turkey 2 -1
d croatia 1 -3
e belgium 7 2
e ireland 5 1
e italy 4 0
e sweden 0 -3
f portugal 9 6
f austria 6 3
f hungary 3 -4
f iceland 0 -5

Matches Details

((team1,team2),result)
(('france', 'romania'), 0)
(('france', 'albania'), 1)
(('france', 'switzerland'), 0)
(('romania', 'albania'), 2)
(('romania', 'switzerland'), -1)
(('albania', 'switzerland'), -2)
(('england', 'russia'), 3)
(('england', 'wales'), 0)
(('england', 'slovakia'), 0)
(('russia', 'wales'), 0)
(('russia', 'slovakia'), 0)
(('wales', 'slovakia'), -2)
(('germany', 'ukraine'), 2)
(('germany', 'poland'), 2)
(('germany', 'northern ireland'), 0)
(('ukraine', 'poland'), 0)
(('ukraine', 'northern ireland'), 1)
(('poland', 'northern ireland'), 1)
(('spain', 'czechia'), 1)
(('spain', 'turkey'), 1)
(('spain', 'croatia'), 1)
(('czechia', 'turkey'), 0)
(('czechia', 'croatia'), 2)
(('turkey', 'croatia'), 0)
(('belgium', 'italy'), 1)
(('belgium', 'ireland'), 0)
(('belgium', 'sweden'), 1)
(('italy', 'ireland'), 0)
(('italy', 'sweden'), 1)
(('ireland', 'sweden'), 1)
(('portugal', 'iceland'), 2)
(('portugal', 'austria'), 1)
(('portugal', 'hungary'), 3)
(('iceland', 'austria'), -2)
(('iceland', 'hungary'), -1)
(('austria', 'hungary'), 2)

Thanks

historcal data from fedebayle
euro2016 data from nowaycomputer promotion rules of euro2016 from Sohu

About

Soccer Matches Predictor using Machine Learning

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages