{ "metadata": { "name": "", "signature": "sha256:d9b9b9f0c4fa0b1e72d0bf8ed79f3099870ca0cf1ccbbd4dfc4138b4f363c347" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "World Cup Learning\n", "------------------\n", "\n", "Here I try to predict fifa world cup matches results, based on the knowledge of previous matches from the cups since the year 1950.\n", "\n", "I'll use a MLP neural network classifier, my inputs will be the past matches (replacing each team name with a lot of stats from both), and my output will be a number indicating the result (0 = tie, 1 = wins team1, 2 = wins team2).\n", "\n", "I'll be using pybrain for the classifier, pandas to hack my way through the data, and pygal for the graphs (far easier than matplotlib). And a lot of extra useful things implemented in the utils.py file, mostly to abstract the data processing I need before I feed the classifier." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from random import random\n", "\n", "from IPython.display import SVG\n", "import pygal\n", "\n", "from pybrain.structure import SigmoidLayer\n", "from pybrain.tools.shortcuts import buildNetwork\n", "from pybrain.supervised.trainers import BackpropTrainer\n", "from pybrain.datasets import ClassificationDataSet\n", "from pybrain.utilities import percentError\n", "\n", "from utils import get_matches, get_team_stats, extract_samples, normalize, split_samples, graph_teams_stat_bars, graph_matches_results_scatter\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Configs\n", "-------" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# the features I will feed to the classifier as input data.\n", "input_features = ['year',\n", " 'matches_won_percent',\n", " 'podium_score_yearly',\n", " 'matches_won_percent_2',\n", " 'podium_score_yearly_2',]\n", "\n", "# the feature giving the result the classifier must learn to predict (I recommend allways using 'winner')\n", "output_feature = 'winner'\n", "\n", "# used to avoid including tied matches in the learning process. I found this greatly improves the classifier accuracy.\n", "# I know there will be some ties, but I'm willing to fail on those and have better accuracy with all the rest.\n", "# at this point, this code will break if you set it to False, because the network uses a sigmoid function with a \n", "# threeshold for output, so it is able to distinquish only 2 kinds of results.\n", "exclude_ties = True\n", "\n", "# used to duplicate matches data, reversing the teams (team1->team2, and viceversa). \n", "# This helps on visualizations, and also improves precission of the predictions avoiding a dependence on the\n", "# order of the teams from the input.\n", "duplicate_with_reversed = True" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "def show(graph):\n", " '''Small utility to display pygal graphs'''\n", " return SVG(graph.render())" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Team stats\n", "----------\n", "\n", "First we need the teams stats. We can't feed the classifier inputs like ('Argentina', 'Brazil'), we need to give it numbers. And not any numbers, not just ids, but numbers that could be somewhat related to the result of the matches.\n", "\n", "For example: the percentage of won matches of each team is something that could have an impact in the result, so that stat is a very good candidate.\n", "\n", "We just calculate a lots of stats per team, and after we will decide which ones to use." ] }, { "cell_type": "code", "collapsed": false, "input": [ "team_stats = get_team_stats()\n", "team_stats" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
matches_playedmatches_wonyears_playedpodium_scorecups_wonmatches_won_percentpodium_score_yearlycups_won_yearly
team
Brazil 89 63 16 102 5 70.786517 6.375000 0.312500
Canada 3 0 1 0 0 0.000000 0.000000 0.000000
Serbia and Montenegro 3 0 1 0 0 0.000000 0.000000 0.000000
Kuwait 3 0 1 0 0 0.000000 0.000000 0.000000
Scotland 23 4 8 0 0 17.391304 0.000000 0.000000
Costa Rica 10 3 3 0 0 30.000000 0.000000 0.000000
Ivory Coast 6 2 2 0 0 33.333333 0.000000 0.000000
Wales 5 1 1 0 0 20.000000 0.000000 0.000000
Argentina 64 33 13 40 2 51.562500 3.076923 0.153846
Bolivia 4 0 2 0 0 0.000000 0.000000 0.000000
Cameroon 20 4 6 0 0 20.000000 0.000000 0.000000
Ecuador 7 3 2 0 0 42.857143 0.000000 0.000000
Ghana 9 4 2 0 0 44.444444 0.000000 0.000000
Saudi Arabia 13 2 4 0 0 15.384615 0.000000 0.000000
Australia 10 2 3 0 0 20.000000 0.000000 0.000000
Iran 9 1 3 0 0 11.111111 0.000000 0.000000
Algeria 9 2 3 0 0 22.222222 0.000000 0.000000
El Salvador 6 0 2 0 0 0.000000 0.000000 0.000000
Republic of Ireland 13 2 3 0 0 15.384615 0.000000 0.000000
Slovenia 6 1 2 0 0 16.666667 0.000000 0.000000
Chile 26 7 7 4 0 26.923077 0.571429 0.000000
Belgium 32 10 8 2 0 31.250000 0.250000 0.000000
Haiti 3 0 1 0 0 0.000000 0.000000 0.000000
Iraq 3 0 1 0 0 0.000000 0.000000 0.000000
Spain 53 27 12 18 1 50.943396 1.500000 0.083333
China PR 3 0 1 0 0 0.000000 0.000000 0.000000
Netherlands 41 22 7 26 0 53.658537 3.714286 0.000000
Denmark 16 8 4 0 0 50.000000 0.000000 0.000000
Poland 30 15 6 8 0 50.000000 1.333333 0.000000
Morocco 13 2 4 0 0 15.384615 0.000000 0.000000
Croatia 13 6 3 4 0 46.153846 1.333333 0.000000
Switzerland 24 7 7 0 0 29.166667 0.000000 0.000000
Honduras 6 0 2 0 0 0.000000 0.000000 0.000000
New Zealand 6 0 2 0 0 0.000000 0.000000 0.000000
Jamaica 3 1 1 0 0 33.333333 0.000000 0.000000
England 59 26 13 18 1 44.067797 1.384615 0.076923
Uruguay 43 14 10 22 1 32.558140 2.200000 0.100000
United Arab Emirates 3 0 1 0 0 0.000000 0.000000 0.000000
South Africa 9 2 3 0 0 22.222222 0.000000 0.000000
Egypt 3 0 1 0 0 0.000000 0.000000 0.000000
Colombia 13 3 4 0 0 23.076923 0.000000 0.000000
South Korea 28 5 8 2 0 17.857143 0.250000 0.000000
Turkey 10 5 2 4 0 50.000000 2.000000 0.000000
Italy 71 36 15 54 2 50.704225 3.600000 0.133333
Czech Republic 3 1 1 0 0 33.333333 0.000000 0.000000
France 48 23 10 34 1 47.916667 3.400000 0.100000
Slovakia 4 1 1 0 0 25.000000 0.000000 0.000000
Peru 13 4 3 0 0 30.769231 0.000000 0.000000
Norway 7 2 2 0 0 28.571429 0.000000 0.000000
Nigeria 14 4 4 0 0 28.571429 0.000000 0.000000
Israel 3 0 1 0 0 0.000000 0.000000 0.000000
Zaire 3 0 1 0 0 0.000000 0.000000 0.000000
Czechoslovakia 23 7 6 8 0 30.434783 1.333333 0.000000
Austria 25 10 6 4 0 40.000000 0.666667 0.000000
Togo 3 0 1 0 0 0.000000 0.000000 0.000000
Germany 98 59 15 94 3 60.204082 6.266667 0.200000
Ukraine 5 2 1 0 0 40.000000 0.000000 0.000000
Northern Ireland 13 3 3 0 0 23.076923 0.000000 0.000000
United States 25 5 7 0 0 20.000000 0.000000 0.000000
Trinidad and Tobago 3 0 1 0 0 0.000000 0.000000 0.000000
........................
\n", "

76 rows \u00d7 8 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ " matches_played matches_won years_played \\\n", "team \n", "Brazil 89 63 16 \n", "Canada 3 0 1 \n", "Serbia and Montenegro 3 0 1 \n", "Kuwait 3 0 1 \n", "Scotland 23 4 8 \n", "Costa Rica 10 3 3 \n", "Ivory Coast 6 2 2 \n", "Wales 5 1 1 \n", "Argentina 64 33 13 \n", "Bolivia 4 0 2 \n", "Cameroon 20 4 6 \n", "Ecuador 7 3 2 \n", "Ghana 9 4 2 \n", "Saudi Arabia 13 2 4 \n", "Australia 10 2 3 \n", "Iran 9 1 3 \n", "Algeria 9 2 3 \n", "El Salvador 6 0 2 \n", "Republic of Ireland 13 2 3 \n", "Slovenia 6 1 2 \n", "Chile 26 7 7 \n", "Belgium 32 10 8 \n", "Haiti 3 0 1 \n", "Iraq 3 0 1 \n", "Spain 53 27 12 \n", "China PR 3 0 1 \n", "Netherlands 41 22 7 \n", "Denmark 16 8 4 \n", "Poland 30 15 6 \n", "Morocco 13 2 4 \n", "Croatia 13 6 3 \n", "Switzerland 24 7 7 \n", "Honduras 6 0 2 \n", "New Zealand 6 0 2 \n", "Jamaica 3 1 1 \n", "England 59 26 13 \n", "Uruguay 43 14 10 \n", "United Arab Emirates 3 0 1 \n", "South Africa 9 2 3 \n", "Egypt 3 0 1 \n", "Colombia 13 3 4 \n", "South Korea 28 5 8 \n", "Turkey 10 5 2 \n", "Italy 71 36 15 \n", "Czech Republic 3 1 1 \n", "France 48 23 10 \n", "Slovakia 4 1 1 \n", "Peru 13 4 3 \n", "Norway 7 2 2 \n", "Nigeria 14 4 4 \n", "Israel 3 0 1 \n", "Zaire 3 0 1 \n", "Czechoslovakia 23 7 6 \n", "Austria 25 10 6 \n", "Togo 3 0 1 \n", "Germany 98 59 15 \n", "Ukraine 5 2 1 \n", "Northern Ireland 13 3 3 \n", "United States 25 5 7 \n", "Trinidad and Tobago 3 0 1 \n", " ... ... ... \n", "\n", " podium_score cups_won matches_won_percent \\\n", "team \n", "Brazil 102 5 70.786517 \n", "Canada 0 0 0.000000 \n", "Serbia and Montenegro 0 0 0.000000 \n", "Kuwait 0 0 0.000000 \n", "Scotland 0 0 17.391304 \n", "Costa Rica 0 0 30.000000 \n", "Ivory Coast 0 0 33.333333 \n", "Wales 0 0 20.000000 \n", "Argentina 40 2 51.562500 \n", "Bolivia 0 0 0.000000 \n", "Cameroon 0 0 20.000000 \n", "Ecuador 0 0 42.857143 \n", "Ghana 0 0 44.444444 \n", "Saudi Arabia 0 0 15.384615 \n", "Australia 0 0 20.000000 \n", "Iran 0 0 11.111111 \n", "Algeria 0 0 22.222222 \n", "El Salvador 0 0 0.000000 \n", "Republic of Ireland 0 0 15.384615 \n", "Slovenia 0 0 16.666667 \n", "Chile 4 0 26.923077 \n", "Belgium 2 0 31.250000 \n", "Haiti 0 0 0.000000 \n", "Iraq 0 0 0.000000 \n", "Spain 18 1 50.943396 \n", "China PR 0 0 0.000000 \n", "Netherlands 26 0 53.658537 \n", "Denmark 0 0 50.000000 \n", "Poland 8 0 50.000000 \n", "Morocco 0 0 15.384615 \n", "Croatia 4 0 46.153846 \n", "Switzerland 0 0 29.166667 \n", "Honduras 0 0 0.000000 \n", "New Zealand 0 0 0.000000 \n", "Jamaica 0 0 33.333333 \n", "England 18 1 44.067797 \n", "Uruguay 22 1 32.558140 \n", "United Arab Emirates 0 0 0.000000 \n", "South Africa 0 0 22.222222 \n", "Egypt 0 0 0.000000 \n", "Colombia 0 0 23.076923 \n", "South Korea 2 0 17.857143 \n", "Turkey 4 0 50.000000 \n", "Italy 54 2 50.704225 \n", "Czech Republic 0 0 33.333333 \n", "France 34 1 47.916667 \n", "Slovakia 0 0 25.000000 \n", "Peru 0 0 30.769231 \n", "Norway 0 0 28.571429 \n", "Nigeria 0 0 28.571429 \n", "Israel 0 0 0.000000 \n", "Zaire 0 0 0.000000 \n", "Czechoslovakia 8 0 30.434783 \n", "Austria 4 0 40.000000 \n", "Togo 0 0 0.000000 \n", "Germany 94 3 60.204082 \n", "Ukraine 0 0 40.000000 \n", "Northern Ireland 0 0 23.076923 \n", "United States 0 0 20.000000 \n", "Trinidad and Tobago 0 0 0.000000 \n", " ... ... ... \n", "\n", " podium_score_yearly cups_won_yearly \n", "team \n", "Brazil 6.375000 0.312500 \n", "Canada 0.000000 0.000000 \n", "Serbia and Montenegro 0.000000 0.000000 \n", "Kuwait 0.000000 0.000000 \n", "Scotland 0.000000 0.000000 \n", "Costa Rica 0.000000 0.000000 \n", "Ivory Coast 0.000000 0.000000 \n", "Wales 0.000000 0.000000 \n", "Argentina 3.076923 0.153846 \n", "Bolivia 0.000000 0.000000 \n", "Cameroon 0.000000 0.000000 \n", "Ecuador 0.000000 0.000000 \n", "Ghana 0.000000 0.000000 \n", "Saudi Arabia 0.000000 0.000000 \n", "Australia 0.000000 0.000000 \n", "Iran 0.000000 0.000000 \n", "Algeria 0.000000 0.000000 \n", "El Salvador 0.000000 0.000000 \n", "Republic of Ireland 0.000000 0.000000 \n", "Slovenia 0.000000 0.000000 \n", "Chile 0.571429 0.000000 \n", "Belgium 0.250000 0.000000 \n", "Haiti 0.000000 0.000000 \n", "Iraq 0.000000 0.000000 \n", "Spain 1.500000 0.083333 \n", "China PR 0.000000 0.000000 \n", "Netherlands 3.714286 0.000000 \n", "Denmark 0.000000 0.000000 \n", "Poland 1.333333 0.000000 \n", "Morocco 0.000000 0.000000 \n", "Croatia 1.333333 0.000000 \n", "Switzerland 0.000000 0.000000 \n", "Honduras 0.000000 0.000000 \n", "New Zealand 0.000000 0.000000 \n", "Jamaica 0.000000 0.000000 \n", "England 1.384615 0.076923 \n", "Uruguay 2.200000 0.100000 \n", "United Arab Emirates 0.000000 0.000000 \n", "South Africa 0.000000 0.000000 \n", "Egypt 0.000000 0.000000 \n", "Colombia 0.000000 0.000000 \n", "South Korea 0.250000 0.000000 \n", "Turkey 2.000000 0.000000 \n", "Italy 3.600000 0.133333 \n", "Czech Republic 0.000000 0.000000 \n", "France 3.400000 0.100000 \n", "Slovakia 0.000000 0.000000 \n", "Peru 0.000000 0.000000 \n", "Norway 0.000000 0.000000 \n", "Nigeria 0.000000 0.000000 \n", "Israel 0.000000 0.000000 \n", "Zaire 0.000000 0.000000 \n", "Czechoslovakia 1.333333 0.000000 \n", "Austria 0.666667 0.000000 \n", "Togo 0.000000 0.000000 \n", "Germany 6.266667 0.200000 \n", "Ukraine 0.000000 0.000000 \n", "Northern Ireland 0.000000 0.000000 \n", "United States 0.000000 0.000000 \n", "Trinidad and Tobago 0.000000 0.000000 \n", " ... ... \n", "\n", "[76 rows x 8 columns]" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets visualize some of those stats, just because it helps paint a bigger picture on how good the teams are.\n", "\n", "(you can hoover with your mouse on the '...' from the x axys to see the team name)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "show(graph_teams_stat_bars(team_stats, 'matches_won_percent'))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "svg": [ "Teams by matches_won_percent\u2026United Arab Emirates\u2026Trinidad and Tobago\u2026Iraq\u2026Haiti\u2026El Salvador\u2026Zaire\u2026Israel\u2026China PR\u2026Angola\u2026Honduras\u2026Togo\u2026New Zealand\u2026Egypt\u2026Kuwait\u2026Serbia and Montenegro\u2026Canada\u2026Bolivia\u2026Tunisia\u2026Iran\u2026Bulgaria\u2026North Korea\u2026Republic of Ireland\u2026Morocco\u2026Saudi Arabia\u2026Greece\u2026Slovenia\u2026Scotland\u2026South Korea\u2026United States\u2026Australia\u2026Cameroon\u2026Wales\u2026Algeria\u2026South Africa\u2026Colombia\u2026Northern Ireland\u2026Paraguay\u2026Slovakia\u2026Mexico\u2026Chile\u2026Nigeria\u2026Norway\u2026Japan\u2026Switzerland\u2026Costa Rica\u2026Czechoslovakia\u2026Peru\u2026Belgium\u2026Uruguay\u2026Ivory Coast\u2026Czech Republic\u2026Jamaica\u2026Serbia\u2026Sweden\u2026Senegal\u2026Ukraine\u2026Austria\u2026Yugoslavia\u2026Hungary\u2026Ecuador\u2026Romania\u2026England\u2026Ghana\u2026Russia\u2026Croatia\u2026France\u2026Denmark\u2026Turkey\u2026Poland\u2026Italy\u2026Spain\u2026Argentina\u2026Portugal\u2026Netherlands\u2026Germany\u2026Brazil0.010.020.030.040.050.060.070.00.017.8896761134478.6153846150.026.745951417478.6153846150.035.6022267206478.6153846150.044.4585020243478.6153846150.053.3147773279478.6153846150.062.1710526316478.6153846150.071.0273279352478.6153846150.079.8836032389478.6153846150.088.7398785425478.6153846150.097.5961538462478.6153846150.0106.45242915478.6153846150.0115.308704453478.6153846150.0124.164979757478.6153846150.0133.021255061478.6153846150.0141.877530364478.6153846150.0150.733805668478.6153846150.0159.590080972478.6153846158.33333333333168.446356275450.99531949511.1111111111177.302631579441.78863112211.5384615385186.158906883440.37221752614.2857142857195.015182186431.26670155215.3846153846203.87145749427.62449516315.3846153846212.727732794427.62449516315.3846153846221.584008097427.62449516316.6666666667230.440283401423.37525437516.6666666667239.296558704423.37525437517.3913043478248.152834008420.97350958217.8571428571257.009109312419.42953078720.0265.865384615412.32722832720.0274.721659919412.32722832720.0283.577935223412.32722832720.0292.434210526412.32722832722.2222222222301.29048583404.96187762922.2222222222310.146761134404.96187762923.0769230769319.003036437402.12905043723.0769230769327.859311741402.12905043724.0336.715587045399.0695970725.0345.571862348395.75518925526.0869565217354.428137652392.15257206626.9230769231363.284412955389.38132807428.5714285714372.140688259383.91801848928.5714285714380.996963563383.91801848928.5714285714389.853238866383.91801848929.1666666667398.70951417381.94515669530.0407.565789474379.18315018330.4347826087416.422064777377.74210330730.7692307692425.278340081376.63360571131.25434.134615385375.04014041532.5581395349442.990890688370.70443251833.3333333333451.847165992368.13512413533.3333333333460.703441296368.13512413533.3333333333469.559716599368.13512413533.3333333333478.415991903368.13512413534.1463414634487.272267206365.44048363640.0496.12854251346.03907203940.0504.984817814346.03907203940.0513.841093117346.03907203941.1764705882522.697368421342.13976872842.3076923077531.553643725338.39043862142.8571428571540.409919028336.56933542643.75549.266194332333.61004273544.0677966102558.122469636332.55673516744.4444444444566.978744939331.30837064245.9459459459575.835020243326.33178233246.1538461538584.691295547325.64271625847.9166666667593.54757085319.80001017550.0602.403846154312.89499389550.0611.260121457312.89499389550.0620.116396761312.89499389550.7042253521628.972672065310.56090388550.9433962264637.828947368309.7681940751.5625646.685222672307.71623168552.1739130435655.541497976305.68975951653.6585365854664.397773279300.76911164760.2040816327673.254048583279.07450599370.7865168539682.110323887244.0Teams by matches_won_percentteammatches_won_percent" ], "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pudium score is an invented measure on how good the teams are by looking at the 4 first teams from each cup. The first team receives 8 points, the second 4, the third 2, and the fourth 1. All the rest receive 0 points. As you can see, the scoring is exponential, because each position implies an exponentially bigger amount of matches won than the next one." ] }, { "cell_type": "code", "collapsed": false, "input": [ "show(graph_teams_stat_bars(team_stats, 'podium_score_yearly'))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "svg": [ "Teams by podium_score_yearly\u2026United Arab Emirates\u2026New Zealand\u2026Jamaica\u2026Paraguay\u2026South Africa\u2026Egypt\u2026Colombia\u2026Czech Republic\u2026Slovakia\u2026Peru\u2026Norway\u2026Nigeria\u2026Israel\u2026Honduras\u2026Zaire\u2026Ukraine\u2026Northern Ireland\u2026United States\u2026Trinidad and Tobago\u2026North Korea\u2026Romania\u2026Angola\u2026Mexico\u2026Tunisia\u2026Serbia\u2026Senegal\u2026Greece\u2026Togo\u2026Switzerland\u2026Japan\u2026Slovenia\u2026Iran\u2026Algeria\u2026El Salvador\u2026Republic of Ireland\u2026Saudi Arabia\u2026Ivory Coast\u2026Wales\u2026Ghana\u2026Costa Rica\u2026Australia\u2026Ecuador\u2026Haiti\u2026Iraq\u2026Scotland\u2026Kuwait\u2026Serbia and Montenegro\u2026China PR\u2026Bolivia\u2026Denmark\u2026Canada\u2026Cameroon\u2026Morocco\u2026Russia\u2026South Korea\u2026Belgium\u2026Yugoslavia\u2026Bulgaria\u2026Chile\u2026Austria\u2026Hungary\u2026Portugal\u2026Croatia\u2026Czechoslovakia\u2026Poland\u2026England\u2026Spain\u2026Sweden\u2026Turkey\u2026Uruguay\u2026Argentina\u2026France\u2026Italy\u2026Netherlands\u2026Germany\u2026Brazil0.01.02.03.04.05.06.00.018.0430161943478.6153846150.026.9752024291478.6153846150.035.907388664478.6153846150.044.8395748988478.6153846150.053.7717611336478.6153846150.062.7039473684478.6153846150.071.6361336032478.6153846150.080.5683198381478.6153846150.089.5005060729478.6153846150.098.4326923077478.6153846150.0107.364878543478.6153846150.0116.297064777478.6153846150.0125.229251012478.6153846150.0134.161437247478.6153846150.0143.093623482478.6153846150.0152.025809717478.6153846150.0160.957995951478.6153846150.0169.890182186478.6153846150.0178.822368421478.6153846150.0187.754554656478.6153846150.0196.686740891478.6153846150.0205.618927126478.6153846150.0214.55111336478.6153846150.0223.483299595478.6153846150.0232.41548583478.6153846150.0241.347672065478.6153846150.0250.2798583478.6153846150.0259.212044534478.6153846150.0268.144230769478.6153846150.0277.076417004478.6153846150.0286.008603239478.6153846150.0294.940789474478.6153846150.0303.872975709478.6153846150.0312.805161943478.6153846150.0321.737348178478.6153846150.0330.669534413478.6153846150.0339.601720648478.6153846150.0348.533906883478.6153846150.0357.466093117478.6153846150.0366.398279352478.6153846150.0375.330465587478.6153846150.0384.262651822478.6153846150.0393.194838057478.6153846150.0402.127024291478.6153846150.0411.059210526478.6153846150.0419.991396761478.6153846150.0428.923582996478.6153846150.0437.855769231478.6153846150.0446.787955466478.6153846150.0455.7201417478.6153846150.0464.652327935478.6153846150.0473.58451417478.6153846150.0482.516700405478.6153846150.222222222222491.44888664470.4370705550.25500.381072874469.4147812970.25509.313259109469.4147812970.25518.245445344469.4147812970.285714285714527.177631579468.1004093950.571428571429536.109817814457.5854341740.666666666667545.042004049454.0804424331.14285714286553.974190283436.5554837321.2562.906376518434.4524886881.33333333333571.838562753429.5455002511.33333333333580.770748988429.5455002511.33333333333589.702935223429.5455002511.38461538462598.635121457427.6581970071.5607.567307692423.4117647061.77777777778616.499493927413.188872132.0625.431680162405.0105580692.2634.363866397397.6500754153.07692307692643.296052632365.3771899293.4652.228238866353.4871794873.6661.160425101346.1266968333.71428571429670.092611336341.9207067446.26666666667679.024797571247.9869281056.375687.956983806244.0Teams by podium_score_yearlyteampodium_score_yearly" ], "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Matches\n", "-------\n", "\n", "Now we need to get the matches data, including the \"reversed\" duplication of matches, and adding the team stats in each match." ] }, { "cell_type": "code", "collapsed": false, "input": [ "matches = get_matches(with_team_stats=True,\n", " duplicate_with_reversed=duplicate_with_reversed,\n", " exclude_ties=exclude_ties)\n", " \n", "matches" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
score1score2team1team2yearscore_diffwinnermatches_playedmatches_wonyears_playedpodium_scorecups_wonmatches_won_percentpodium_score_yearlycups_won_yearlymatches_played_2matches_won_2years_played_2podium_score_2cups_won_2
0 4 0 Brazil Mexico 1950 4 1 89 63 16 102 5 70.786517 6.375000 0.312500 46 12 13 0 0...
1 3 0 Yugoslavia Switzerland 1950 3 1 34 14 8 2 0 41.176471 0.250000 0.000000 24 7 7 0 0...
3 4 1 Yugoslavia Mexico 1950 3 1 34 14 8 2 0 41.176471 0.250000 0.000000 46 12 13 0 0...
4 2 0 Brazil Yugoslavia 1950 2 1 89 63 16 102 5 70.786517 6.375000 0.312500 34 14 8 2 0...
5 2 1 Switzerland Mexico 1950 1 1 24 7 7 0 0 29.166667 0.000000 0.000000 46 12 13 0 0...
6 2 0 England Chile 1950 2 1 59 26 13 18 1 44.067797 1.384615 0.076923 26 7 7 4 0...
7 3 1 Spain United States 1950 2 1 53 27 12 18 1 50.943396 1.500000 0.083333 25 5 7 0 0...
8 2 0 Spain Chile 1950 2 1 53 27 12 18 1 50.943396 1.500000 0.083333 26 7 7 4 0...
9 1 0 United States England 1950 1 1 25 5 7 0 0 20.000000 0.000000 0.000000 59 26 13 18 1...
10 1 0 Spain England 1950 1 1 53 27 12 18 1 50.943396 1.500000 0.083333 59 26 13 18 1...
11 5 2 Chile United States 1950 3 1 26 7 7 4 0 26.923077 0.571429 0.000000 25 5 7 0 0...
12 3 2 Sweden Italy 1950 1 1 41 14 9 16 0 34.146341 1.777778 0.000000 71 36 15 54 2...
14 2 0 Italy Paraguay 1950 2 1 71 36 15 54 2 50.704225 3.600000 0.133333 25 6 7 0 0...
15 8 0 Uruguay Bolivia 1950 8 1 43 14 10 22 1 32.558140 2.200000 0.100000 4 0 2 0 0...
17 7 1 Brazil Sweden 1950 6 1 89 63 16 102 5 70.786517 6.375000 0.312500 41 14 9 16 0...
18 6 1 Brazil Spain 1950 5 1 89 63 16 102 5 70.786517 6.375000 0.312500 53 27 12 18 1...
19 3 2 Uruguay Sweden 1950 1 1 43 14 10 22 1 32.558140 2.200000 0.100000 41 14 9 16 0...
20 3 1 Sweden Spain 1950 2 1 41 14 9 16 0 34.146341 1.777778 0.000000 53 27 12 18 1...
21 2 1 Uruguay Brazil 1950 1 1 43 14 10 22 1 32.558140 2.200000 0.100000 89 63 16 102 5...
22 5 0 Brazil Mexico 1954 5 1 89 63 16 102 5 70.786517 6.375000 0.312500 46 12 13 0 0...
23 1 0 Yugoslavia France 1954 1 1 34 14 8 2 0 41.176471 0.250000 0.000000 48 23 10 34 1...
25 3 2 France Mexico 1954 1 1 48 23 10 34 1 47.916667 3.400000 0.100000 46 12 13 0 0...
26 4 1 Germany Turkey 1954 3 1 98 59 15 94 3 60.204082 6.266667 0.200000 10 5 2 4 0...
27 9 0 Hungary South Korea 1954 9 1 26 11 7 8 0 42.307692 1.142857 0.000000 28 5 8 2 0...
28 8 3 Hungary Germany 1954 5 1 26 11 7 8 0 42.307692 1.142857 0.000000 98 59 15 94 3...
29 7 0 Turkey South Korea 1954 7 1 10 5 2 4 0 50.000000 2.000000 0.000000 28 5 8 2 0...
30 7 2 Germany Turkey 1954 5 1 98 59 15 94 3 60.204082 6.266667 0.200000 10 5 2 4 0...
31 2 0 Uruguay Czechoslovakia 1954 2 1 43 14 10 22 1 32.558140 2.200000 0.100000 23 7 6 8 0...
32 1 0 Austria Scotland 1954 1 1 25 10 6 4 0 40.000000 0.666667 0.000000 23 4 8 0 0...
33 7 0 Uruguay Scotland 1954 7 1 43 14 10 22 1 32.558140 2.200000 0.100000 23 4 8 0 0...
34 5 0 Austria Czechoslovakia 1954 5 1 25 10 6 4 0 40.000000 0.666667 0.000000 23 7 6 8 0...
35 2 1 Switzerland Italy 1954 1 1 24 7 7 0 0 29.166667 0.000000 0.000000 71 36 15 54 2...
37 4 1 Italy Belgium 1954 3 1 71 36 15 54 2 50.704225 3.600000 0.133333 32 10 8 2 0...
38 2 0 England Switzerland 1954 2 1 59 26 13 18 1 44.067797 1.384615 0.076923 24 7 7 0 0...
39 4 1 Switzerland Italy 1954 3 1 24 7 7 0 0 29.166667 0.000000 0.000000 71 36 15 54 2...
40 7 5 Austria Switzerland 1954 2 1 25 10 6 4 0 40.000000 0.666667 0.000000 24 7 7 0 0...
41 4 2 Uruguay England 1954 2 1 43 14 10 22 1 32.558140 2.200000 0.100000 59 26 13 18 1...
42 2 4 Brazil Hungary 1954-2 2 89 63 16 102 5 70.786517 6.375000 0.312500 26 11 7 8 0...
43 0 2 Yugoslavia Germany 1954-2 2 34 14 8 2 0 41.176471 0.250000 0.000000 98 59 15 94 3...
44 4 2 Hungary Uruguay 1954 2 1 26 11 7 8 0 42.307692 1.142857 0.000000 43 14 10 22 1...
45 6 1 Germany Austria 1954 5 1 98 59 15 94 3 60.204082 6.266667 0.200000 25 10 6 4 0...
46 1 3 Uruguay Austria 1954-2 2 43 14 10 22 1 32.558140 2.200000 0.100000 25 10 6 4 0...
47 2 3 Hungary Germany 1954-1 2 26 11 7 8 0 42.307692 1.142857 0.000000 98 59 15 94 3...
48 3 1 Germany Argentina 1958 2 1 98 59 15 94 3 60.204082 6.266667 0.200000 64 33 13 40 2...
49 1 0 Northern Ireland Czechoslovakia 1958 1 1 13 3 3 0 0 23.076923 0.000000 0.000000 23 7 6 8 0...
50 3 1 Argentina Northern Ireland 1958 2 1 64 33 13 40 2 51.562500 3.076923 0.153846 13 3 3 0 0...
53 6 1 Czechoslovakia Argentina 1958 5 1 23 7 6 8 0 30.434783 1.333333 0.000000 64 33 13 40 2...
54 2 1 Northern Ireland Czechoslovakia 1958 1 1 13 3 3 0 0 23.076923 0.000000 0.000000 23 7 6 8 0...
55 7 3 France Paraguay 1958 4 1 48 23 10 34 1 47.916667 3.400000 0.100000 25 6 7 0 0...
57 3 2 Yugoslavia France 1958 1 1 34 14 8 2 0 41.176471 0.250000 0.000000 48 23 10 34 1...
58 3 2 Paraguay Scotland 1958 1 1 25 6 7 0 0 24.000000 0.000000 0.000000 23 4 8 0 0...
59 2 1 France Scotland 1958 1 1 48 23 10 34 1 47.916667 3.400000 0.100000 23 4 8 0 0...
61 3 0 Sweden Mexico 1958 3 1 41 14 9 16 0 34.146341 1.777778 0.000000 46 12 13 0 0...
64 2 1 Sweden Hungary 1958 1 1 41 14 9 16 0 34.146341 1.777778 0.000000 26 11 7 8 0...
66 4 0 Hungary Mexico 1958 4 1 26 11 7 8 0 42.307692 1.142857 0.000000 46 12 13 0 0...
67 2 1 Wales Hungary 1958 1 1 5 1 1 0 0 20.000000 0.000000 0.000000 26 11 7 8 0...
68 3 0 Brazil Austria 1958 3 1 89 63 16 102 5 70.786517 6.375000 0.312500 25 10 6 4 0...
71 2 0 Russia Austria 1958 2 1 37 17 9 2 0 45.945946 0.222222 0.000000 25 10 6 4 0...
73 2 0 Brazil Russia 1958 2 1 89 63 16 102 5 70.786517 6.375000 0.312500 37 17 9 2 0...
74 1 0 Russia England 1958 1 1 37 17 9 2 0 45.945946 0.222222 0.000000 59 26 13 18 1...
............................................................
\n", "

1100 rows \u00d7 23 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ " score1 score2 team1 team2 year score_diff \\\n", "0 4 0 Brazil Mexico 1950 4 \n", "1 3 0 Yugoslavia Switzerland 1950 3 \n", "3 4 1 Yugoslavia Mexico 1950 3 \n", "4 2 0 Brazil Yugoslavia 1950 2 \n", "5 2 1 Switzerland Mexico 1950 1 \n", "6 2 0 England Chile 1950 2 \n", "7 3 1 Spain United States 1950 2 \n", "8 2 0 Spain Chile 1950 2 \n", "9 1 0 United States England 1950 1 \n", "10 1 0 Spain England 1950 1 \n", "11 5 2 Chile United States 1950 3 \n", "12 3 2 Sweden Italy 1950 1 \n", "14 2 0 Italy Paraguay 1950 2 \n", "15 8 0 Uruguay Bolivia 1950 8 \n", "17 7 1 Brazil Sweden 1950 6 \n", "18 6 1 Brazil Spain 1950 5 \n", "19 3 2 Uruguay Sweden 1950 1 \n", "20 3 1 Sweden Spain 1950 2 \n", "21 2 1 Uruguay Brazil 1950 1 \n", "22 5 0 Brazil Mexico 1954 5 \n", "23 1 0 Yugoslavia France 1954 1 \n", "25 3 2 France Mexico 1954 1 \n", "26 4 1 Germany Turkey 1954 3 \n", "27 9 0 Hungary South Korea 1954 9 \n", "28 8 3 Hungary Germany 1954 5 \n", "29 7 0 Turkey South Korea 1954 7 \n", "30 7 2 Germany Turkey 1954 5 \n", "31 2 0 Uruguay Czechoslovakia 1954 2 \n", "32 1 0 Austria Scotland 1954 1 \n", "33 7 0 Uruguay Scotland 1954 7 \n", "34 5 0 Austria Czechoslovakia 1954 5 \n", "35 2 1 Switzerland Italy 1954 1 \n", "37 4 1 Italy Belgium 1954 3 \n", "38 2 0 England Switzerland 1954 2 \n", "39 4 1 Switzerland Italy 1954 3 \n", "40 7 5 Austria Switzerland 1954 2 \n", "41 4 2 Uruguay England 1954 2 \n", "42 2 4 Brazil Hungary 1954 -2 \n", "43 0 2 Yugoslavia Germany 1954 -2 \n", "44 4 2 Hungary Uruguay 1954 2 \n", "45 6 1 Germany Austria 1954 5 \n", "46 1 3 Uruguay Austria 1954 -2 \n", "47 2 3 Hungary Germany 1954 -1 \n", "48 3 1 Germany Argentina 1958 2 \n", "49 1 0 Northern Ireland Czechoslovakia 1958 1 \n", "50 3 1 Argentina Northern Ireland 1958 2 \n", "53 6 1 Czechoslovakia Argentina 1958 5 \n", "54 2 1 Northern Ireland Czechoslovakia 1958 1 \n", "55 7 3 France Paraguay 1958 4 \n", "57 3 2 Yugoslavia France 1958 1 \n", "58 3 2 Paraguay Scotland 1958 1 \n", "59 2 1 France Scotland 1958 1 \n", "61 3 0 Sweden Mexico 1958 3 \n", "64 2 1 Sweden Hungary 1958 1 \n", "66 4 0 Hungary Mexico 1958 4 \n", "67 2 1 Wales Hungary 1958 1 \n", "68 3 0 Brazil Austria 1958 3 \n", "71 2 0 Russia Austria 1958 2 \n", "73 2 0 Brazil Russia 1958 2 \n", "74 1 0 Russia England 1958 1 \n", " ... ... ... ... ... ... \n", "\n", " winner matches_played matches_won years_played podium_score cups_won \\\n", "0 1 89 63 16 102 5 \n", "1 1 34 14 8 2 0 \n", "3 1 34 14 8 2 0 \n", "4 1 89 63 16 102 5 \n", "5 1 24 7 7 0 0 \n", "6 1 59 26 13 18 1 \n", "7 1 53 27 12 18 1 \n", "8 1 53 27 12 18 1 \n", "9 1 25 5 7 0 0 \n", "10 1 53 27 12 18 1 \n", "11 1 26 7 7 4 0 \n", "12 1 41 14 9 16 0 \n", "14 1 71 36 15 54 2 \n", "15 1 43 14 10 22 1 \n", "17 1 89 63 16 102 5 \n", "18 1 89 63 16 102 5 \n", "19 1 43 14 10 22 1 \n", "20 1 41 14 9 16 0 \n", "21 1 43 14 10 22 1 \n", "22 1 89 63 16 102 5 \n", "23 1 34 14 8 2 0 \n", "25 1 48 23 10 34 1 \n", "26 1 98 59 15 94 3 \n", "27 1 26 11 7 8 0 \n", "28 1 26 11 7 8 0 \n", "29 1 10 5 2 4 0 \n", "30 1 98 59 15 94 3 \n", "31 1 43 14 10 22 1 \n", "32 1 25 10 6 4 0 \n", "33 1 43 14 10 22 1 \n", "34 1 25 10 6 4 0 \n", "35 1 24 7 7 0 0 \n", "37 1 71 36 15 54 2 \n", "38 1 59 26 13 18 1 \n", "39 1 24 7 7 0 0 \n", "40 1 25 10 6 4 0 \n", "41 1 43 14 10 22 1 \n", "42 2 89 63 16 102 5 \n", "43 2 34 14 8 2 0 \n", "44 1 26 11 7 8 0 \n", "45 1 98 59 15 94 3 \n", "46 2 43 14 10 22 1 \n", "47 2 26 11 7 8 0 \n", "48 1 98 59 15 94 3 \n", "49 1 13 3 3 0 0 \n", "50 1 64 33 13 40 2 \n", "53 1 23 7 6 8 0 \n", "54 1 13 3 3 0 0 \n", "55 1 48 23 10 34 1 \n", "57 1 34 14 8 2 0 \n", "58 1 25 6 7 0 0 \n", "59 1 48 23 10 34 1 \n", "61 1 41 14 9 16 0 \n", "64 1 41 14 9 16 0 \n", "66 1 26 11 7 8 0 \n", "67 1 5 1 1 0 0 \n", "68 1 89 63 16 102 5 \n", "71 1 37 17 9 2 0 \n", "73 1 89 63 16 102 5 \n", "74 1 37 17 9 2 0 \n", " ... ... ... ... ... ... \n", "\n", " matches_won_percent podium_score_yearly cups_won_yearly \\\n", "0 70.786517 6.375000 0.312500 \n", "1 41.176471 0.250000 0.000000 \n", "3 41.176471 0.250000 0.000000 \n", "4 70.786517 6.375000 0.312500 \n", "5 29.166667 0.000000 0.000000 \n", "6 44.067797 1.384615 0.076923 \n", "7 50.943396 1.500000 0.083333 \n", "8 50.943396 1.500000 0.083333 \n", "9 20.000000 0.000000 0.000000 \n", "10 50.943396 1.500000 0.083333 \n", "11 26.923077 0.571429 0.000000 \n", "12 34.146341 1.777778 0.000000 \n", "14 50.704225 3.600000 0.133333 \n", "15 32.558140 2.200000 0.100000 \n", "17 70.786517 6.375000 0.312500 \n", "18 70.786517 6.375000 0.312500 \n", "19 32.558140 2.200000 0.100000 \n", "20 34.146341 1.777778 0.000000 \n", "21 32.558140 2.200000 0.100000 \n", "22 70.786517 6.375000 0.312500 \n", "23 41.176471 0.250000 0.000000 \n", "25 47.916667 3.400000 0.100000 \n", "26 60.204082 6.266667 0.200000 \n", "27 42.307692 1.142857 0.000000 \n", "28 42.307692 1.142857 0.000000 \n", "29 50.000000 2.000000 0.000000 \n", "30 60.204082 6.266667 0.200000 \n", "31 32.558140 2.200000 0.100000 \n", "32 40.000000 0.666667 0.000000 \n", "33 32.558140 2.200000 0.100000 \n", "34 40.000000 0.666667 0.000000 \n", "35 29.166667 0.000000 0.000000 \n", "37 50.704225 3.600000 0.133333 \n", "38 44.067797 1.384615 0.076923 \n", "39 29.166667 0.000000 0.000000 \n", "40 40.000000 0.666667 0.000000 \n", "41 32.558140 2.200000 0.100000 \n", "42 70.786517 6.375000 0.312500 \n", "43 41.176471 0.250000 0.000000 \n", "44 42.307692 1.142857 0.000000 \n", "45 60.204082 6.266667 0.200000 \n", "46 32.558140 2.200000 0.100000 \n", "47 42.307692 1.142857 0.000000 \n", "48 60.204082 6.266667 0.200000 \n", "49 23.076923 0.000000 0.000000 \n", "50 51.562500 3.076923 0.153846 \n", "53 30.434783 1.333333 0.000000 \n", "54 23.076923 0.000000 0.000000 \n", "55 47.916667 3.400000 0.100000 \n", "57 41.176471 0.250000 0.000000 \n", "58 24.000000 0.000000 0.000000 \n", "59 47.916667 3.400000 0.100000 \n", "61 34.146341 1.777778 0.000000 \n", "64 34.146341 1.777778 0.000000 \n", "66 42.307692 1.142857 0.000000 \n", "67 20.000000 0.000000 0.000000 \n", "68 70.786517 6.375000 0.312500 \n", "71 45.945946 0.222222 0.000000 \n", "73 70.786517 6.375000 0.312500 \n", "74 45.945946 0.222222 0.000000 \n", " ... ... ... \n", "\n", " matches_played_2 matches_won_2 years_played_2 podium_score_2 \\\n", "0 46 12 13 0 \n", "1 24 7 7 0 \n", "3 46 12 13 0 \n", "4 34 14 8 2 \n", "5 46 12 13 0 \n", "6 26 7 7 4 \n", "7 25 5 7 0 \n", "8 26 7 7 4 \n", "9 59 26 13 18 \n", "10 59 26 13 18 \n", "11 25 5 7 0 \n", "12 71 36 15 54 \n", "14 25 6 7 0 \n", "15 4 0 2 0 \n", "17 41 14 9 16 \n", "18 53 27 12 18 \n", "19 41 14 9 16 \n", "20 53 27 12 18 \n", "21 89 63 16 102 \n", "22 46 12 13 0 \n", "23 48 23 10 34 \n", "25 46 12 13 0 \n", "26 10 5 2 4 \n", "27 28 5 8 2 \n", "28 98 59 15 94 \n", "29 28 5 8 2 \n", "30 10 5 2 4 \n", "31 23 7 6 8 \n", "32 23 4 8 0 \n", "33 23 4 8 0 \n", "34 23 7 6 8 \n", "35 71 36 15 54 \n", "37 32 10 8 2 \n", "38 24 7 7 0 \n", "39 71 36 15 54 \n", "40 24 7 7 0 \n", "41 59 26 13 18 \n", "42 26 11 7 8 \n", "43 98 59 15 94 \n", "44 43 14 10 22 \n", "45 25 10 6 4 \n", "46 25 10 6 4 \n", "47 98 59 15 94 \n", "48 64 33 13 40 \n", "49 23 7 6 8 \n", "50 13 3 3 0 \n", "53 64 33 13 40 \n", "54 23 7 6 8 \n", "55 25 6 7 0 \n", "57 48 23 10 34 \n", "58 23 4 8 0 \n", "59 23 4 8 0 \n", "61 46 12 13 0 \n", "64 26 11 7 8 \n", "66 46 12 13 0 \n", "67 26 11 7 8 \n", "68 25 10 6 4 \n", "71 25 10 6 4 \n", "73 37 17 9 2 \n", "74 59 26 13 18 \n", " ... ... ... ... \n", "\n", " cups_won_2 \n", "0 0 ... \n", "1 0 ... \n", "3 0 ... \n", "4 0 ... \n", "5 0 ... \n", "6 0 ... \n", "7 0 ... \n", "8 0 ... \n", "9 1 ... \n", "10 1 ... \n", "11 0 ... \n", "12 2 ... \n", "14 0 ... \n", "15 0 ... \n", "17 0 ... \n", "18 1 ... \n", "19 0 ... \n", "20 1 ... \n", "21 5 ... \n", "22 0 ... \n", "23 1 ... \n", "25 0 ... \n", "26 0 ... \n", "27 0 ... \n", "28 3 ... \n", "29 0 ... \n", "30 0 ... \n", "31 0 ... \n", "32 0 ... \n", "33 0 ... \n", "34 0 ... \n", "35 2 ... \n", "37 0 ... \n", "38 0 ... \n", "39 2 ... \n", "40 0 ... \n", "41 1 ... \n", "42 0 ... \n", "43 3 ... \n", "44 1 ... \n", "45 0 ... \n", "46 0 ... \n", "47 3 ... \n", "48 2 ... \n", "49 0 ... \n", "50 0 ... \n", "53 2 ... \n", "54 0 ... \n", "55 0 ... \n", "57 1 ... \n", "58 0 ... \n", "59 0 ... \n", "61 0 ... \n", "64 0 ... \n", "66 0 ... \n", "67 0 ... \n", "68 0 ... \n", "71 0 ... \n", "73 0 ... \n", "74 1 ... \n", " ... \n", "\n", "[1100 rows x 23 columns]" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Are the results able to be classified? Can we see a pattern, some kind of grouping of results based on the stats of bot teams?\n", "\n", "Let's try visualizing two of the most interesting ones: matches won percent, and podium score yearly (mean)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "show(graph_matches_results_scatter(matches, 'matches_won_percent', 'matches_won_percent_2'))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "svg": [ "Results dispersion by matches_won_percent, matches_won_percent_20.010.020.030.040.050.060.070.00.010.020.030.040.050.060.070.0Results dispersion by matches_won_percent, matches_won_percent_2matches_won_percentmatches_won_percent_226.0869565217615.530769231305.68975951629.1666666667363.102413273285.27492877526.0869565217363.102413273305.68975951641.1764705882615.530769231205.66415284126.0869565217260.717735043305.68975951626.9230769231387.751232383300.14727153220.0446.366348746346.03907203926.9230769231446.366348746300.14727153244.0677966102182.571062271186.49808571844.0677966102446.366348746186.49808571820.0241.590927022346.03907203950.7042253521303.169918699142.50642315424.0444.32739514319.5238095240.0289.630351819478.61538461534.1463414634615.530769231252.26558265650.9433962264615.530769231140.92100352534.1463414634289.630351819252.26558265650.9433962264303.169918699140.92100352570.7865168539289.6303518199.3846153846226.0869565217615.530769231305.68975951647.9166666667363.102413273160.98463573526.0869565217420.563202076305.68975951650.0525.314539882147.17460317517.8571428571372.746182023360.24367695860.2040816327372.74618202379.533627370417.8571428571438.323809524360.24367695850.0525.314539882147.17460317530.4347826087289.630351819276.86882199917.3913043478353.072893773363.33163454917.3913043478289.630351819363.33163454930.4347826087353.072893773276.86882199950.7042253521260.717735043142.50642315431.25444.32739514271.46489621529.1666666667387.751232383285.27492877550.7042253521260.717735043142.50642315429.1666666667353.072893773285.27492877544.0677966102289.630351819186.49808571832.5581395349372.746182023262.79348042140.0525.314539882213.46275946351.5625525.314539882136.81707875530.4347826087208.802113271276.86882199923.0769230769451.64426511325.64271625851.5625271.528539576136.81707875530.4347826087208.802113271276.86882199924.0420.563202076319.52380952447.9166666667363.102413273160.98463573517.3913043478216.671428571363.33163454917.3913043478420.563202076363.33163454926.0869565217303.169918699305.68975951642.3076923077303.169918699198.16549262726.0869565217372.746182023305.68975951642.3076923077182.571062271198.16549262740.0615.530769231213.46275946340.0403.762627463213.46275946345.9459459459615.530769231174.04818004844.0677966102403.762627463186.49808571823.0769230769420.563202076325.64271625845.9459459459303.169918699174.04818004820.0615.530769231346.03907203941.1764705882525.314539882205.66415284123.0769230769289.630351819325.64271625841.1764705882403.762627463205.66415284132.5581395349363.102413273262.79348042132.5581395349403.762627463262.79348042123.0769230769363.102413273325.64271625829.1666666667241.590927022285.27492877550.7042253521241.590927022142.50642315429.1666666667525.314539882285.27492877526.9230769231525.314539882300.14727153229.1666666667444.32739514285.27492877526.0869565217615.530769231305.68975951650.9433962264271.528539576140.92100352526.0869565217446.366348746305.68975951650.9433962264615.530769231140.92100352530.4347826087234.462924032276.86882199911.5384615385451.64426511402.12905043744.0677966102372.746182023186.49808571851.5625387.751232383136.81707875511.5384615385372.746182023402.12905043745.9459459459241.590927022174.04818004842.3076923077271.528539576198.16549262744.0677966102615.530769231186.49808571860.2040816327363.10241327379.533627370441.1764705882271.528539576205.66415284126.9230769231615.530769231300.14727153241.1764705882241.590927022205.66415284130.4347826087615.530769231276.86882199947.9166666667289.630351819160.98463573526.0869565217387.751232383305.68975951647.9166666667387.751232383160.98463573529.1666666667525.314539882285.27492877550.9433962264451.64426511140.92100352529.1666666667446.366348746285.27492877529.1666666667451.64426511285.27492877550.9433962264525.314539882140.92100352511.5384615385615.530769231402.12905043742.3076923077456.856617296198.16549262770.7865168539372.7461820239.3846153846211.5384615385456.856617296402.12905043770.7865168539456.8566172969.3846153846211.5384615385372.746182023402.12905043714.2857142857403.762627463383.91801848926.9230769231444.32739514300.14727153250.7042253521403.762627463142.50642315450.7042253521133.856253271142.50642315426.9230769231403.762627463300.14727153214.2857142857456.856617296383.91801848932.5581395349525.314539882262.79348042142.3076923077403.762627463198.16549262751.5625387.751232383136.81707875545.9459459459525.314539882174.04818004852.1739130435387.751232383132.76413441645.9459459459456.856617296174.04818004860.2040816327387.75123238379.53362737040.0278.478342491478.61538461531.25403.762627463271.4648962150.0234.462924032478.6153846150.0403.762627463478.61538461531.25234.462924032271.4648962150.0289.630351819478.61538461534.1463414634444.32739514252.26558265630.4347826087385.041987179276.86882199930.4347826087387.751232383276.86882199911.5384615385274.379740772402.12905043715.3846153846274.379740772376.63360571126.0869565217444.32739514305.68975951630.7692307692615.530769231274.65182680644.0677966102525.314539882186.49808571860.2040816327444.3273951479.533627370450.7042253521615.530769231142.50642315426.9230769231525.314539882300.14727153220.0525.314539882346.03907203960.2040816327525.31453988279.53362737040.0363.102413273478.61538461511.5384615385469.513168945402.12905043732.5581395349303.169918699262.7934804210.0444.32739514478.61538461551.5625438.323809524136.8170787550.0451.64426511478.61538461550.7042253521438.323809524142.50642315451.5625469.513168945136.81707875560.2040816327615.53076923179.533627370470.7865168539469.5131689459.3846153846241.1764705882438.323809524205.66415284134.1463414634525.314539882252.26558265641.1764705882303.169918699205.66415284147.9166666667444.32739514160.98463573542.3076923077451.64426511198.16549262742.3076923077444.32739514198.16549262747.9166666667451.64426511160.98463573542.3076923077420.563202076198.16549262726.086956521783.1116605617305.68975951626.0869565217525.314539882305.6897595168.33333333333438.323809524423.37525437526.0869565217438.323809524305.68975951650.9433962264353.072893773140.92100352534.1463414634353.072893773252.26558265634.1463414634446.366348746252.26558265640.0615.530769231213.46275946317.3913043478274.379740772363.33163454911.1111111111469.513168945404.96187762911.1111111111274.379740772404.96187762953.6585365854160.331692945122.92283867940.0444.32739514213.46275946360.2040816327353.07289377379.533627370450.0451.64426511147.17460317530.7692307692451.64426511274.65182680650.7042253521615.530769231142.50642315430.7692307692438.323809524274.65182680626.9230769231525.314539882300.14727153226.9230769231201.515710216300.14727153240.0525.314539882213.4627594630.0372.746182023478.61538461542.3076923077451.64426511198.1654926270.0278.478342491478.6153846150.0451.64426511478.61538461547.9166666667387.751232383160.98463573530.4347826087387.751232383276.8688219990.0420.563202076478.6153846150.0387.751232383478.61538461541.1764705882446.366348746205.66415284145.9459459459615.530769231174.0481800480.0160.331692945478.61538461517.3913043478615.530769231363.3316345490.0403.762627463478.6153846150.0615.530769231478.61538461531.25438.323809524271.46489621550.9433962264525.314539882140.92100352551.5625444.32739514136.81707875570.7865168539444.327395149.3846153846247.9166666667438.323809524160.98463573560.2040816327444.3273951479.533627370417.8571428571451.64426511360.24367695811.5384615385451.64426511402.1290504370.0216.671428571478.61538461542.3076923077403.762627463198.1654926270.0372.746182023478.6153846150.0403.762627463478.61538461522.2222222222615.530769231331.30837064217.3913043478525.314539882363.33163454932.5581395349438.323809524262.79348042160.2040816327438.32380952479.533627370444.0677966102456.856617296186.49808571852.1739130435438.323809524132.76413441650.0387.751232383147.17460317511.5384615385234.462924032402.12905043750.0615.530769231147.17460317532.5581395349451.64426511262.79348042124.0387.751232383319.52380952444.0677966102451.64426511186.49808571831.25451.64426511271.46489621531.25420.563202076271.46489621560.2040816327451.6442651179.533627370440.0444.32739514213.46275946320.0444.32739514346.03907203920.0353.072893773346.03907203930.4347826087444.32739514276.86882199945.9459459459451.64426511174.04818004843.75182.571062271188.60470085534.1463414634615.530769231252.26558265617.3913043478267.821978022363.33163454930.0615.530769231279.75091575117.3913043478615.530769231363.33163454941.1764705882525.314539882205.66415284123.0769230769363.102413273325.6427162580.0525.314539882478.6153846150.0363.102413273478.61538461517.8571428571278.478342491360.24367695832.5581395349278.478342491262.7934804210.0387.751232383478.61538461523.0769230769182.571062271325.64271625830.0271.528539576279.75091575153.6585365854525.314539882122.92283867932.5581395349444.32739514262.79348042131.25387.751232383271.46489621515.3846153846444.32739514376.63360571130.4347826087525.314539882276.86882199920.0387.751232383346.03907203944.0677966102444.32739514186.49808571851.5625525.314539882136.81707875523.0769230769182.571062271325.64271625845.9459459459615.530769231174.04818004820.0615.530769231346.03907203945.9459459459303.169918699174.04818004820.0403.762627463346.0390720390.0525.314539882478.61538461517.8571428571525.314539882360.24367695816.6666666667451.64426511368.13512413511.5384615385255.643275772402.12905043728.5714285714451.64426511289.22065236426.0869565217255.643275772305.68975951628.5714285714444.32739514289.22065236415.3846153846234.462924032376.63360571115.3846153846278.478342491376.63360571115.3846153846469.513168945376.63360571115.3846153846143.224485771376.63360571153.6585365854278.478342491122.92283867931.25525.314539882271.46489621529.1666666667446.366348746285.27492877551.5625385.041987179136.81707875515.3846153846469.513168945376.63360571120.0615.530769231346.03907203950.9433962264444.32739514140.92100352560.2040816327110.4356720279.533627370411.5384615385303.169918699402.12905043717.3913043478615.530769231363.33163454915.3846153846615.530769231376.63360571120.0444.32739514346.03907203940.0444.32739514213.46275946322.2222222222420.563202076331.30837064215.3846153846420.563202076376.63360571150.0420.563202076147.17460317511.5384615385255.643275772402.12905043711.5384615385446.366348746402.12905043717.8571428571469.513168945360.24367695811.1111111111363.102413273404.96187762920.0525.314539882346.03907203911.1111111111525.314539882404.9618776298.33333333333387.751232383423.37525437523.0769230769385.041987179325.6427162588.33333333333208.802113271423.37525437544.0677966102385.041987179186.49808571828.5714285714451.64426511289.22065236433.3333333333451.64426511257.65486365546.1538461538451.64426511172.67004790128.5714285714444.32739514289.22065236426.9230769231615.530769231300.14727153224.0420.563202076319.52380952426.0869565217525.314539882305.68975951641.1764705882469.513168945205.66415284150.0615.530769231147.17460317551.5625469.513168945136.81707875546.1538461538420.563202076172.67004790147.9166666667438.323809524160.98463573516.6666666667446.366348746368.13512413524.0446.366348746319.52380952416.6666666667201.515710216368.13512413550.0615.530769231147.1746031750.0615.530769231478.6153846150.0438.323809524478.61538461550.0164.303008896147.17460317552.1739130435182.571062271132.76413441650.0456.856617296147.17460317520.0438.323809524346.03907203915.3846153846525.314539882376.63360571115.3846153846182.571062271376.63360571128.5714285714451.64426511289.22065236428.5714285714303.169918699289.22065236442.8571428571444.32739514194.52328623842.8571428571234.462924032194.52328623846.1538461538377.430298273172.6700479018.33333333333403.762627463423.37525437545.9459459459255.643275772174.04818004845.9459459459278.478342491174.04818004824.0525.314539882319.52380952431.25615.530769231271.46489621550.7042253521164.303008896142.50642315420.0525.314539882346.03907203917.8571428571525.314539882360.24367695850.0615.530769231147.17460317530.0525.314539882279.75091575150.0525.314539882147.17460317530.0377.430298273279.75091575124.0387.751232383319.5238095240.0387.751232383478.61538461524.0303.169918699319.5238095240.0216.671428571478.61538461533.3333333333451.64426511257.6548636550.0451.64426511478.61538461533.3333333333469.513168945257.6548636550.0296.238949939478.61538461511.1111111111234.462924032404.96187762911.1111111111456.856617296404.96187762926.0869565217456.856617296305.68975951644.4444444444444.32739514184.00135666820.0390.962189662346.03907203928.5714285714182.571062271289.22065236446.1538461538615.530769231172.67004790120.0615.530769231346.0390720390.0164.303008896478.61538461517.8571428571260.717735043360.24367695840.0446.366348746213.4627594638.33333333333446.366348746423.3752543758.33333333333353.072893773423.37525437534.1463414634525.314539882252.26558265626.0869565217451.64426511305.68975951642.8571428571387.751232383194.52328623853.6585365854456.856617296122.92283867920.0444.32739514346.03907203944.4444444444615.530769231184.00135666840.0444.32739514213.46275946352.1739130435525.314539882132.76413441616.6666666667164.303008896368.13512413528.5714285714451.64426511289.22065236417.8571428571451.64426511360.24367695828.5714285714154.154090354289.22065236422.2222222222182.571062271331.30837064220.0525.314539882346.03907203933.3333333333182.571062271257.65486365550.0469.513168945147.17460317520.0255.643275772346.03907203928.5714285714469.513168945289.22065236450.7042253521225.196520147142.50642315414.2857142857615.530769231383.91801848933.3333333333615.530769231257.65486365514.2857142857456.856617296383.91801848929.1666666667241.590927022285.2749287750.0446.366348746478.61538461517.8571428571289.630351819360.24367695844.0677966102525.314539882186.49808571826.0869565217451.64426511305.68975951625.0469.513168945312.89499389526.9230769231615.530769231300.14727153252.1739130435446.366348746132.76413441670.7865168539469.5131689459.3846153846270.7865168539372.7461820239.3846153846241.1764705882525.314539882205.66415284132.5581395349353.072893773262.79348042142.3076923077525.314539882198.16549262747.9166666667615.530769231160.98463573560.2040816327303.16991869979.533627370460.2040816327420.56320207679.533627370434.1463414634615.530769231252.26558265632.5581395349303.169918699262.79348042143.75387.751232383188.60470085530.4347826087615.530769231276.86882199944.0677966102615.530769231186.49808571843.75615.530769231188.60470085515.3846153846525.314539882376.63360571111.5384615385525.314539882402.12905043730.7692307692525.314539882274.65182680645.9459459459289.630351819174.04818004832.5581395349615.530769231262.79348042132.5581395349525.314539882262.79348042120.0525.314539882346.0390720390.0160.331692945478.6153846150.0615.530769231478.61538461532.5581395349469.513168945262.7934804210.0438.323809524478.61538461551.5625615.530769231136.81707875560.2040816327469.51316894579.533627370441.1764705882525.314539882205.66415284134.1463414634438.323809524252.26558265650.0525.314539882147.17460317570.7865168539438.3238095249.3846153846253.6585365854525.314539882122.92283867951.5625444.32739514136.81707875540.0469.513168945213.46275946350.7042253521469.513168945142.50642315430.7692307692615.530769231274.65182680630.7692307692438.323809524274.65182680650.0615.530769231147.17460317553.6585365854451.64426511122.92283867960.2040816327201.51571021679.533627370426.9230769231353.072893773300.14727153222.2222222222353.072893773331.30837064251.5625278.478342491136.8170787550.0363.102413273478.61538461550.9433962264208.802113271140.92100352531.25403.762627463271.46489621551.5625615.530769231136.81707875540.0420.563202076213.46275946323.0769230769420.563202076325.64271625850.0444.32739514147.17460317517.8571428571444.32739514360.24367695831.25234.462924032271.4648962150.0278.478342491478.6153846150.0234.462924032478.6153846150.0420.563202076478.61538461542.3076923077420.563202076198.16549262750.9433962264615.530769231140.92100352523.0769230769446.366348746325.64271625823.0769230769615.530769231325.64271625822.2222222222446.366348746331.30837064217.3913043478438.323809524363.33163454952.1739130435143.224485771132.76413441645.9459459459278.478342491174.04818004850.7042253521420.563202076142.50642315415.3846153846525.314539882376.63360571150.0446.366348746147.17460317547.9166666667525.314539882160.98463573520.0271.528539576346.03907203940.0271.528539576213.46275946351.5625182.571062271136.81707875545.9459459459385.041987179174.04818004820.0403.762627463346.03907203934.1463414634160.331692945252.26558265634.1463414634267.821978022252.2655826560.0208.802113271478.61538461517.8571428571446.366348746360.24367695831.25446.366348746271.46489621517.8571428571289.630351819360.24367695870.7865168539451.644265119.3846153846250.9433962264363.102413273140.92100352523.0769230769385.041987179325.64271625843.75260.717735043188.60470085529.1666666667208.802113271285.27492877520.0385.041987179346.0390720390.0446.366348746478.61538461516.6666666667110.43567202368.13512413551.5625110.43567202136.81707875516.6666666667255.643275772368.13512413550.7042253521143.224485771142.50642315431.25143.224485771271.46489621515.3846153846469.513168945376.63360571115.3846153846303.169918699376.63360571128.5714285714444.32739514289.22065236453.6585365854615.530769231122.92283867911.5384615385444.32739514402.12905043734.1463414634615.530769231252.26558265670.7865168539255.6432757729.3846153846217.3913043478143.224485771363.33163454915.3846153846438.323809524376.63360571150.9433962264255.643275772140.92100352528.5714285714216.671428571289.22065236417.8571428571234.462924032360.24367695820.0106.792470492346.03907203920.0363.102413273346.03907203923.0769230769387.751232383325.64271625833.3333333333405.534995773257.65486365528.5714285714405.534995773289.22065236428.5714285714296.238949939289.22065236428.5714285714438.323809524289.22065236443.75405.534995773188.60470085560.2040816327405.53499577379.533627370453.6585365854405.534995773122.92283867970.7865168539420.5632020769.3846153846247.9166666667353.072893773160.98463573532.5581395349438.323809524262.79348042122.2222222222446.366348746331.30837064216.6666666667216.671428571368.1351241350.0267.821978022478.61538461530.0615.530769231279.75091575152.1739130435164.303008896132.76413441620.0525.314539882346.03907203915.3846153846143.224485771376.63360571151.5625387.751232383136.81707875546.1538461538234.462924032172.67004790150.7042253521405.534995773142.5064231548.33333333333255.643275772423.37525437550.0387.751232383147.17460317534.1463414634353.072893773252.26558265626.0869565217182.571062271305.68975951628.5714285714438.323809524289.22065236444.0677966102615.530769231186.49808571840.0438.323809524213.46275946317.8571428571438.323809524360.24367695860.2040816327615.53076923179.533627370450.0377.430298273147.17460317542.8571428571525.314539882194.52328623830.0438.323809524279.7509157510.0469.513168945478.6153846150.0456.856617296478.61538461520.0296.238949939346.03907203933.3333333333390.962189662257.65486365533.3333333333444.32739514257.65486365528.5714285714615.530769231289.2206523640.0260.717735043478.6153846150.0420.563202076478.61538461515.3846153846353.072893773376.63360571115.3846153846446.366348746376.63360571150.9433962264420.563202076140.92100352570.7865168539420.5632020769.3846153846260.2040816327444.3273951479.533627370452.1739130435420.563202076132.76413441622.2222222222289.630351819331.30837064247.9166666667234.462924032160.98463573526.0869565217289.630351819305.68975951647.9166666667201.515710216160.98463573516.6666666667451.64426511368.13512413522.2222222222154.154090354331.30837064216.6666666667387.751232383368.13512413533.3333333333390.962189662257.65486365560.2040816327296.23894993979.533627370444.4444444444525.314539882184.00135666820.0438.323809524346.03907203950.0255.643275772147.17460317520.0469.513168945346.03907203925.0216.671428571312.89499389514.2857142857296.238949939383.9180184890.0241.590927022478.61538461550.9433962264260.717735043140.92100352526.9230769231446.366348746300.14727153220.0390.962189662346.03907203951.5625525.314539882136.81707875524.0446.366348746319.52380952432.5581395349469.513168945262.79348042160.2040816327446.36634874679.533627370432.5581395349525.314539882262.79348042153.6585365854446.366348746122.92283867942.3076923077615.530769231198.16549262760.2040816327363.10241327379.533627370440.0289.630351819213.46275946360.2040816327372.74618202379.533627370470.7865168539420.5632020769.3846153846234.1463414634525.314539882252.26558265647.9166666667525.314539882160.98463573570.7865168539303.1699186999.3846153846234.1463414634289.630351819252.26558265644.0677966102385.041987179186.49808571870.7865168539271.5285395769.3846153846270.7865168539387.7512323839.3846153846270.7865168539385.0419871799.3846153846260.2040816327143.22448577179.533627370460.2040816327110.4356720279.533627370460.2040816327274.37974077279.533627370432.5581395349403.762627463262.79348042170.7865168539289.6303518199.3846153846260.2040816327289.63035181979.533627370460.2040816327182.57106227179.533627370417.391304347812.0692307692363.33163454970.786516853912.06923076929.3846153846253.6585365854289.630351819122.92283867950.012.0692307692147.17460317570.7865168539451.644265119.3846153846253.6585365854525.314539882122.92283867960.2040816327363.10241327379.533627370450.0303.169918699147.17460317560.2040816327438.32380952479.533627370450.0615.530769231147.17460317560.2040816327469.51316894579.533627370450.7042253521451.64426511142.50642315453.6585365854353.072893773122.92283867953.6585365854444.32739514122.92283867970.7865168539274.3797407729.3846153846250.0274.379740772147.17460317570.7865168539438.3238095249.3846153846251.5625469.513168945136.81707875522.2222222222525.314539882331.30837064240.0241.590927022213.46275946340.0201.515710216213.46275946331.25451.64426511271.46489621541.176470588212.0692307692205.66415284123.0769230769446.366348746325.64271625845.9459459459278.478342491174.04818004870.7865168539451.644265119.3846153846247.9166666667353.072893773160.98463573547.9166666667208.802113271160.98463573550.7042253521438.323809524142.50642315450.7042253521164.303008896142.50642315426.0869565217278.478342491305.68975951631.2512.0692307692271.46489621526.086956521712.0692307692305.68975951647.916666666712.0692307692160.98463573547.9166666667372.746182023160.98463573570.7865168539446.3663487469.3846153846250.9433962264208.802113271140.92100352570.7865168539208.8021132719.3846153846250.9433962264201.515710216140.92100352550.0160.331692945147.17460317515.3846153846456.856617296376.63360571131.25403.762627463271.46489621547.9166666667444.32739514160.98463573560.2040816327143.22448577179.533627370450.9433962264438.323809524140.92100352560.2040816327420.56320207679.533627370430.4347826087182.571062271276.86882199930.4347826087353.072893773276.86882199920.0451.64426511346.03907203943.75403.762627463188.60470085545.9459459459182.571062271174.04818004817.3913043478303.169918699363.33163454930.0303.169918699279.75091575123.076923076912.0692307692325.64271625850.9433962264164.303008896140.92100352550.9433962264278.478342491140.92100352532.5581395349164.303008896262.79348042151.5625615.530769231136.81707875541.1764705882446.366348746205.66415284143.75208.802113271188.60470085529.1666666667385.041987179285.27492877523.0769230769260.717735043325.64271625843.75182.571062271188.60470085550.943396226412.0692307692140.92100352511.5384615385154.154090354402.12905043711.5384615385451.64426511402.12905043728.5714285714154.154090354289.22065236415.3846153846444.32739514376.63360571115.3846153846278.478342491376.63360571153.6585365854143.224485771122.92283867934.1463414634143.224485771252.26558265650.7042253521255.643275772142.50642315470.7865168539469.5131689459.3846153846250.7042253521110.43567202142.50642315470.7865168539303.1699186999.3846153846228.5714285714615.530769231289.22065236415.3846153846160.331692945376.63360571150.0143.224485771147.17460317528.5714285714446.366348746289.22065236424.0255.643275772319.52380952426.0869565217164.303008896305.68975951611.1111111111182.571062271404.96187762941.1764705882182.571062271205.66415284144.0677966102208.802113271186.49808571846.1538461538296.238949939172.67004790146.1538461538255.643275772172.67004790133.3333333333255.643275772257.65486365550.0255.643275772147.17460317546.1538461538385.041987179172.67004790146.1538461538525.314539882172.67004790146.1538461538469.513168945172.67004790147.9166666667615.530769231160.98463573540.0420.563202076213.46275946350.0289.630351819147.17460317550.9433962264201.515710216140.92100352524.0154.154090354319.52380952430.012.0692307692279.75091575170.7865168539267.8219780229.3846153846217.8571428571456.856617296360.24367695860.2040816327182.57106227179.533627370415.3846153846143.224485771376.63360571144.0677966102451.64426511186.49808571826.0869565217405.534995773305.68975951646.1538461538444.32739514172.67004790128.571428571483.1116605617289.22065236444.0677966102438.323809524186.49808571840.0303.169918699213.46275946320.0234.462924032346.03907203950.0255.643275772147.17460317570.7865168539387.7512323839.3846153846250.0353.072893773147.17460317550.0164.303008896147.17460317570.7865168539525.3145398829.3846153846242.8571428571438.323809524194.52328623860.2040816327377.43029827379.533627370450.0267.821978022147.17460317553.658536585412.0692307692122.92283867952.173913043512.0692307692132.76413441633.3333333333182.571062271257.65486365544.4444444444296.238949939184.00135666850.7042253521296.238949939142.50642315470.7865168539255.6432757729.3846153846229.166666666712.0692307692285.27492877547.916666666712.0692307692160.98463573540.0143.224485771213.46275946350.9433962264143.224485771140.92100352547.9166666667446.366348746160.98463573547.9166666667615.530769231160.98463573550.7042253521525.314539882142.50642315447.9166666667456.856617296160.98463573532.5581395349201.515710216262.79348042126.0869565217420.563202076305.68975951632.5581395349234.462924032262.79348042122.2222222222420.563202076331.30837064251.5625154.154090354136.81707875516.6666666667201.515710216368.13512413544.0677966102154.154090354186.49808571844.4444444444296.238949939184.00135666833.3333333333525.314539882257.65486365560.2040816327390.96218966279.533627370450.0182.571062271147.17460317528.5714285714438.323809524289.22065236453.6585365854182.571062271122.92283867924.0225.196520147319.52380952433.3333333333133.856253271257.65486365526.923076923112.0692307692300.14727153229.1666666667446.366348746285.27492877550.9433962264241.590927022140.92100352544.4444444444182.571062271184.00135666860.2040816327451.6442651179.533627370450.9433962264216.671428571140.92100352553.6585365854289.630351819122.92283867950.9433962264525.314539882140.92100352560.2040816327289.63035181979.533627370450.9433962264469.513168945140.92100352570.7865168539234.4629240329.3846153846241.1764705882260.717735043205.66415284141.1764705882234.462924032205.66415284170.7865168539363.1024132739.3846153846229.1666666667234.462924032285.27492877544.0677966102241.590927022186.49808571850.9433962264182.571062271140.92100352550.9433962264241.590927022140.92100352520.0387.751232383346.03907203950.9433962264387.751232383140.92100352526.9230769231182.571062271300.14727153234.1463414634444.32739514252.26558265650.7042253521216.671428571142.50642315432.558139534912.0692307692262.79348042170.7865168539303.1699186999.3846153846270.7865168539446.3663487469.3846153846232.5581395349303.169918699262.79348042134.1463414634446.366348746252.26558265632.5581395349615.530769231262.79348042170.7865168539234.4629240329.3846153846241.1764705882420.563202076205.66415284147.9166666667234.462924032160.98463573560.2040816327438.32380952479.533627370442.3076923077164.303008896198.16549262742.3076923077525.314539882198.16549262750.0164.303008896147.17460317560.2040816327438.32380952479.533627370432.5581395349271.528539576262.79348042140.0160.331692945213.46275946332.5581395349160.331692945262.79348042140.0271.528539576213.46275946329.1666666667444.32739514285.27492877550.7042253521278.478342491142.50642315444.0677966102260.717735043186.49808571829.1666666667444.32739514285.27492877540.0260.717735043213.46275946332.5581395349387.751232383262.79348042142.3076923077289.630351819198.16549262760.2040816327353.07289377379.533627370460.2040816327451.6442651179.533627370423.0769230769271.528539576325.64271625851.5625208.802113271136.81707875530.4347826087451.64426511276.86882199923.0769230769271.528539576325.64271625847.9166666667216.671428571160.98463573541.1764705882420.563202076205.66415284124.0160.331692945319.52380952447.9166666667160.331692945160.98463573534.1463414634234.462924032252.26558265634.1463414634372.746182023252.26558265642.3076923077234.462924032198.16549262720.0372.746182023346.03907203970.7865168539353.0728937739.3846153846245.9459459459353.072893773174.04818004870.7865168539403.7626274639.3846153846245.9459459459387.751232383174.04818004847.9166666667208.802113271160.98463573534.1463414634403.762627463252.26558265670.7865168539182.5710622719.3846153846260.2040816327363.10241327379.533627370432.5581395349208.802113271262.79348042145.9459459459363.102413273174.04818004841.1764705882289.630351819205.66415284145.9459459459289.630351819174.04818004841.1764705882208.802113271205.66415284126.9230769231260.717735043300.14727153226.9230769231444.32739514300.14727153260.2040816327260.71773504379.533627370460.2040816327241.59092702279.533627370450.7042253521260.717735043142.50642315470.7865168539234.4629240329.3846153846230.4347826087446.366348746276.86882199950.9433962264234.462924032140.92100352570.7865168539446.3663487469.3846153846226.0869565217271.528539576305.68975951651.5625110.43567202136.81707875542.3076923077387.751232383198.16549262744.0677966102451.64426511186.49808571842.3076923077110.43567202198.16549262726.9230769231403.762627463300.14727153230.4347826087372.746182023276.86882199970.7865168539387.7512323839.3846153846241.1764705882525.314539882205.66415284130.4347826087363.102413273276.86882199970.7865168539241.5909270229.3846153846226.9230769231363.102413273300.14727153270.7865168539271.5285395769.3846153846232.5581395349420.563202076262.79348042144.0677966102234.462924032186.49808571844.0677966102420.563202076186.49808571860.2040816327260.71773504379.533627370451.5625446.366348746136.81707875550.9433962264260.717735043140.92100352551.5625260.717735043136.81707875560.2040816327446.36634874679.533627370470.7865168539110.435672029.3846153846252.1739130435372.746182023132.76413441642.3076923077615.530769231198.16549262752.1739130435110.43567202132.76413441652.1739130435615.530769231132.76413441642.3076923077110.43567202198.16549262745.9459459459133.856253271174.04818004850.7042253521241.590927022142.50642315445.9459459459444.32739514174.04818004814.2857142857444.32739514383.91801848945.9459459459241.590927022174.04818004852.1739130435133.856253271132.76413441660.2040816327289.63035181979.533627370445.9459459459372.746182023174.04818004844.0677966102451.64426511186.49808571860.2040816327403.76262746379.533627370444.0677966102456.856617296186.49808571852.1739130435403.762627463132.76413441644.0677966102525.314539882186.49808571831.2512.0692307692271.46489621545.9459459459278.478342491174.04818004826.086956521712.0692307692305.68975951645.945945945912.0692307692174.04818004826.0869565217278.478342491305.68975951632.558139534912.0692307692262.79348042150.7042253521303.169918699142.50642315443.75271.528539576188.60470085544.0677966102271.528539576186.49808571830.7692307692110.43567202274.65182680630.7692307692143.224485771274.65182680650.7042253521234.462924032142.50642315470.7865168539274.3797407729.3846153846260.2040816327387.75123238379.533627370450.7042253521525.314539882142.50642315470.7865168539444.327395149.3846153846260.2040816327241.59092702279.533627370460.2040816327182.57106227179.533627370460.2040816327525.31453988279.533627370441.176470588212.0692307692205.66415284153.6585365854110.43567202122.92283867934.1463414634289.630351819252.26558265650.704225352112.0692307692142.50642315450.0451.64426511147.17460317551.562512.0692307692136.81707875550.0444.32739514147.17460317553.6585365854451.64426511122.92283867970.7865168539525.3145398829.3846153846253.6585365854615.530769231122.92283867950.0363.102413273147.17460317560.2040816327303.16991869979.533627370434.1463414634363.102413273252.26558265650.7042253521420.563202076142.50642315451.5625372.746182023136.81707875550.7042253521372.746182023142.50642315451.5625420.563202076136.81707875547.9166666667372.746182023160.9846357358.33333333333234.462924032423.37525437560.2040816327234.46292403279.533627370450.083.1116605617147.17460317550.0234.462924032147.17460317540.0446.366348746213.46275946340.0303.169918699213.46275946350.9433962264303.169918699140.92100352570.7865168539353.0728937739.3846153846230.7692307692160.331692945274.65182680653.6585365854106.792470492122.92283867930.7692307692106.792470492274.65182680617.3913043478469.513168945363.33163454950.7042253521353.072893773142.50642315440.0525.314539882213.46275946351.5625438.323809524136.81707875551.5625274.379740772136.81707875570.7865168539444.327395149.3846153846250.0274.379740772147.17460317560.2040816327241.59092702279.533627370422.2222222222241.590927022331.30837064260.2040816327353.07289377379.533627370442.307692307712.0692307692198.16549262751.5625372.746182023136.81707875531.2512.0692307692271.46489621551.562512.0692307692136.81707875544.0677966102420.563202076186.49808571844.0677966102271.528539576186.49808571847.916666666712.0692307692160.98463573544.067796610212.0692307692186.49808571850.9433962264363.102413273140.92100352570.7865168539403.7626274639.3846153846217.391304347812.0692307692363.33163454970.7865168539160.3316929459.3846153846245.945945945912.0692307692174.04818004870.786516853912.06923076929.3846153846250.0278.478342491147.17460317560.2040816327446.36634874679.533627370450.7042253521451.64426511142.50642315450.7042253521615.530769231142.50642315450.0420.563202076147.17460317550.7042253521525.314539882142.50642315451.5625164.303008896136.81707875551.5625110.43567202136.81707875524.012.0692307692319.52380952445.9459459459372.746182023174.04818004842.307692307712.0692307692198.16549262745.945945945912.0692307692174.04818004870.7865168539201.5157102169.3846153846260.2040816327160.33169294579.533627370450.0289.630351819147.17460317550.0525.314539882147.17460317552.1739130435387.751232383132.76413441650.0456.856617296147.17460317544.0677966102438.323809524186.49808571826.0869565217110.43567202305.68975951670.7865168539438.3238095249.3846153846251.5625289.630351819136.81707875544.0677966102216.671428571186.49808571851.5625387.751232383136.81707875551.5625278.478342491136.81707875547.9166666667278.478342491160.98463573551.5625525.314539882136.81707875550.7042253521353.072893773142.50642315450.7042253521182.571062271142.50642315440.0182.571062271213.46275946350.7042253521271.528539576142.50642315451.5625403.762627463136.81707875520.0385.041987179346.03907203970.7865168539303.1699186999.3846153846230.0160.331692945279.75091575170.7865168539267.8219780229.3846153846270.7865168539160.3316929459.3846153846260.2040816327363.10241327379.533627370441.1764705882208.802113271205.66415284160.204081632712.069230769279.533627370441.176470588212.0692307692205.66415284131.25164.303008896271.46489621531.25289.630351819271.46489621544.067796610212.0692307692186.49808571820.0208.802113271346.03907203930.4347826087267.821978022276.86882199960.2040816327469.51316894579.533627370450.7042253521289.630351819142.50642315444.0677966102278.478342491186.49808571850.7042253521143.224485771142.50642315460.2040816327271.52853957679.533627370444.0677966102182.571062271186.49808571850.7042253521387.751232383142.50642315460.2040816327451.6442651179.533627370420.0208.802113271346.03907203970.7865168539403.7626274639.3846153846270.7865168539182.5710622719.3846153846234.1463414634403.762627463252.26558265645.9459459459182.571062271174.04818004860.204081632712.069230769279.533627370460.2040816327164.30300889679.533627370451.5625154.154090354136.81707875528.5714285714110.43567202289.22065236451.5625255.643275772136.81707875528.5714285714234.462924032289.22065236450.7042253521255.643275772142.50642315426.0869565217143.224485771305.68975951631.25143.224485771271.46489621553.6585365854143.224485771122.92283867915.3846153846143.224485771376.63360571131.25469.513168945271.46489621560.2040816327278.47834249179.533627370450.9433962264260.717735043140.92100352543.75451.64426511188.60470085553.6585365854143.224485771122.92283867970.7865168539182.5710622719.3846153846250.7042253521446.366348746142.50642315411.5384615385525.314539882402.12905043734.1463414634110.43567202252.26558265670.7865168539160.3316929459.3846153846270.7865168539143.2244857719.3846153846250.7042253521182.571062271142.50642315450.7042253521353.072893773142.50642315447.9166666667201.515710216160.98463573547.9166666667143.224485771160.98463573547.9166666667438.323809524160.98463573528.5714285714110.43567202289.22065236450.9433962264110.43567202140.92100352553.6585365854164.303008896122.92283867941.1764705882106.792470492205.66415284160.2040816327182.57106227179.533627370460.2040816327106.79247049279.533627370444.067796610283.1116605617186.49808571843.75208.802113271188.60470085523.076923076983.1116605617325.64271625843.75387.751232383188.60470085551.5625255.643275772136.81707875551.5625296.238949939136.81707875551.5625405.534995773136.81707875550.7042253521255.643275772142.50642315470.7865168539241.5909270229.3846153846247.9166666667216.671428571160.98463573560.2040816327234.46292403279.533627370453.6585365854363.102413273122.92283867970.7865168539438.3238095249.3846153846253.6585365854451.64426511122.92283867947.9166666667405.534995773160.98463573550.0420.563202076147.17460317550.9433962264154.154090354140.92100352550.9433962264216.671428571140.92100352522.2222222222154.154090354331.30837064270.7865168539438.3238095249.3846153846270.786516853912.06923076929.3846153846250.012.0692307692147.17460317517.8571428571438.323809524360.24367695820.0456.856617296346.03907203952.1739130435438.323809524132.76413441650.0182.571062271147.17460317560.2040816327143.22448577179.533627370420.0143.224485771346.03907203951.5625255.643275772136.81707875534.1463414634255.643275772252.26558265650.7042253521377.430298273142.50642315426.0869565217377.430298273305.68975951642.8571428571405.534995773194.52328623845.945945945983.1116605617174.04818004828.5714285714403.762627463289.22065236431.25403.762627463271.46489621560.2040816327216.67142857179.533627370470.7865168539278.4783424919.3846153846217.8571428571444.32739514360.24367695860.2040816327182.57106227179.533627370460.2040816327164.30300889679.533627370470.7865168539438.3238095249.3846153846260.2040816327267.82197802279.533627370460.2040816327438.32380952479.533627370442.8571428571267.821978022194.52328623844.0677966102216.671428571186.49808571844.067796610212.0692307692186.49808571834.1463414634216.671428571252.26558265624.012.0692307692319.52380952451.5625296.238949939136.81707875551.562512.0692307692136.81707875553.6585365854296.238949939122.92283867933.333333333312.0692307692257.65486365526.0869565217106.792470492305.68975951652.1739130435106.792470492132.76413441652.1739130435234.462924032132.76413441650.7042253521390.962189662142.50642315444.4444444444182.571062271184.00135666820.0255.643275772346.03907203970.7865168539405.5349957739.3846153846270.7865168539182.5710622719.3846153846217.857142857112.0692307692360.24367695829.1666666667164.303008896285.27492877550.9433962264353.072893773140.92100352550.943396226483.1116605617140.92100352540.083.1116605617213.46275946360.2040816327303.16991869979.533627370451.5625234.462924032136.81707875544.0677966102377.430298273186.49808571852.1739130435469.513168945132.76413441650.7042253521182.571062271142.50642315470.7865168539390.9621896629.3846153846250.7042253521353.072893773142.50642315460.2040816327456.85661729679.533627370417.8571428571154.154090354360.24367695851.5625255.643275772136.81707875551.5625164.303008896136.81707875516.6666666667255.643275772368.13512413520.0201.515710216346.03907203960.2040816327182.57106227179.533627370420.0296.238949939346.03907203953.6585365854438.323809524122.92283867928.5714285714182.571062271289.22065236453.6585365854255.643275772122.92283867925.0444.32739514312.89499389570.7865168539133.8562532719.3846153846270.7865168539296.2389499399.3846153846252.1739130435133.856253271132.76413441626.9230769231260.717735043300.14727153250.943396226412.0692307692140.92100352532.5581395349164.303008896262.79348042160.2040816327387.75123238379.533627370451.5625234.462924032136.81707875553.6585365854225.196520147122.92283867970.7865168539241.5909270229.3846153846250.9433962264456.856617296140.92100352553.6585365854615.530769231122.922838679wins 1wins 2ties" ], "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "show(graph_matches_results_scatter(matches, 'podium_score_yearly', 'podium_score_yearly_2'))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "svg": [ "Results dispersion by podium_score_yearly, podium_score_yearly_20.01.02.03.04.05.06.00.01.02.03.04.05.06.0Results dispersion by podium_score_yearly, podium_score_yearly_2podium_score_yearlypodium_score_yearly_20.0621.415384615478.6153846150.036.0760180995478.6153846150.036.0760180995478.6153846150.25621.415384615460.2141779790.012.1846153846478.6153846150.571428571429144.506230421436.5554837320.0155.533031674478.6153846150.571428571429155.533031674436.5554837321.3846153846212.1846153846376.7010093981.38461538462155.533031674376.7010093980.066.7935358759478.6153846153.6182.079034691213.638009050.0356.22081448478.6153846150.0222.428959276478.6153846151.77777777778621.415384615347.7623596451.5621.415384615368.2081447961.77777777778222.428959276347.7623596451.5182.079034691368.2081447966.375222.4289592769.384615384620.0621.415384615478.6153846153.436.0760180995228.3589743590.0337.107692308478.6153846152.0611.062443439331.4057315230.25121.402456367460.2141779796.26666666667121.40245636717.35847159380.25203.315837104460.2141779792.0611.062443439331.4057315231.33333333333222.428959276380.4756158870.075.8950226244478.6153846150.0222.428959276478.6153846151.3333333333375.8950226244380.4756158873.612.1846153846213.638009050.25356.22081448460.2141779790.0144.506230421478.6153846153.612.1846153846213.638009050.075.8950226244478.6153846151.38461538462222.428959276376.7010093982.2121.402456367316.6847662140.666666666667611.062443439429.5455002513.07692307692611.062443439252.1389952431.3333333333312.1846153846380.4756158870.0306.232648799478.6153846153.07692307692139.605429864252.1389952431.3333333333312.1846153846380.4756158870.0337.107692308478.6153846153.436.0760180995228.3589743590.012.1846153846478.6153846150.0337.107692308478.6153846150.0182.079034691478.6153846151.14285714286182.079034691394.4955828490.0121.402456367478.6153846151.1428571428612.1846153846394.4955828490.666666666667621.415384615429.5455002510.66666666666733.4214177979429.5455002510.222222222222621.415384615462.2587564941.3846153846233.4214177979376.7010093980.0337.107692308478.6153846150.222222222222182.079034691462.2587564940.0621.415384615478.6153846150.25611.062443439460.2141779790.0222.428959276478.6153846150.2533.4214177979460.2141779792.236.0760180995316.6847662142.233.4214177979316.6847662140.036.0760180995478.6153846150.066.7935358759478.6153846153.666.7935358759213.638009050.0611.062443439478.6153846150.571428571429611.062443439436.5554837320.0356.22081448478.6153846150.0621.415384615478.6153846151.5139.605429864368.2081447960.0155.533031674478.6153846151.5621.415384615368.2081447961.3333333333312.1846153846380.4756158870.285714285714306.232648799457.5854341741.38461538462121.402456367376.7010093983.07692307692144.506230421252.1389952430.285714285714121.402456367457.5854341740.22222222222266.7935358759462.2587564941.14285714286139.605429864394.4955828491.38461538462621.415384615376.7010093986.2666666666736.076018099517.35847159380.25139.605429864460.2141779790.571428571429621.415384615436.5554837320.2566.7935358759460.2141779791.33333333333621.415384615380.4756158873.4222.428959276228.3589743590.0144.506230421478.6153846153.4144.506230421228.3589743590.0611.062443439478.6153846151.5306.232648799368.2081447960.0155.533031674478.6153846150.0306.232648799478.6153846151.5611.062443439368.2081447960.285714285714621.415384615457.5854341741.14285714286126.863348416394.4955828496.375121.4024563679.384615384620.285714285714126.863348416457.5854341746.375126.8633484169.384615384620.285714285714121.402456367457.5854341740.033.4214177979478.6153846150.571428571429356.22081448436.5554837323.633.4214177979213.638009053.612.1846153846213.638009050.57142857142933.4214177979436.5554837320.0126.863348416478.6153846152.2611.062443439316.6847662141.1428571428633.4214177979394.4955828493.07692307692144.506230421252.1389952430.222222222222611.062443439462.2587564941.2144.506230421390.289592760.222222222222126.863348416462.2587564946.26666666667144.50623042117.35847159380.036.0760180995478.6153846150.2533.4214177979460.2141779790.012.1846153846478.6153846150.033.4214177979478.6153846150.2512.1846153846460.2141779790.0222.428959276478.6153846151.77777777778356.22081448347.7623596451.3333333333312.1846153846380.4756158871.33333333333144.506230421380.4756158870.28571428571412.1846153846457.5854341740.012.1846153846478.6153846150.0356.22081448478.6153846150.0621.415384615478.6153846151.38461538462611.062443439376.7010093986.26666666667356.2208144817.35847159383.6621.415384615213.638009050.571428571429611.062443439436.5554837320.0611.062443439478.6153846156.26666666667611.06244343917.35847159380.036.0760180995478.6153846150.285714285714367.142598578457.5854341742.2182.079034691316.6847662140.0356.22081448478.6153846153.07692307692139.605429864252.1389952430.0306.232648799478.6153846153.6139.605429864213.638009053.07692307692367.142598578252.1389952436.26666666667621.41538461517.35847159386.375367.1425985789.384615384620.25139.605429864460.2141779791.77777777778611.062443439347.7623596450.25182.079034691460.2141779793.4356.22081448228.3589743591.14285714286306.232648799394.4955828491.14285714286356.22081448394.4955828493.4306.232648799228.3589743591.14285714286337.107692308394.4955828490.012.1846153846478.6153846150.0611.062443439478.6153846150.0139.605429864478.6153846150.0139.605429864478.6153846151.575.8950226244368.2081447961.7777777777875.8950226244347.7623596451.77777777778155.533031674347.7623596450.666666666667621.415384615429.5455002510.012.1846153846478.6153846150.0367.142598578478.6153846150.012.1846153846478.6153846153.7142857142912.1846153846205.2260288730.666666666667356.22081448429.5455002516.2666666666775.895022624417.35847159381.33333333333306.232648799380.4756158870.0306.232648799478.6153846153.6621.415384615213.638009050.0139.605429864478.6153846150.571428571429611.062443439436.5554837320.57142857142912.1846153846436.5554837320.666666666667611.062443439429.5455002510.0121.402456367478.6153846151.14285714286306.232648799394.4955828490.036.0760180995478.6153846150.0306.232648799478.6153846153.4144.506230421228.3589743591.33333333333144.506230421380.4756158870.0337.107692308478.6153846150.0144.506230421478.6153846150.25155.533031674460.2141779790.222222222222621.415384615462.2587564940.012.1846153846478.6153846150.0621.415384615478.6153846150.033.4214177979478.6153846150.0621.415384615478.6153846150.25139.605429864460.2141779791.5611.062443439368.2081447963.07692307692356.22081448252.1389952436.375356.220814489.384615384623.4139.605429864228.3589743596.26666666667356.2208144817.35847159380.25306.232648799460.2141779790.285714285714306.232648799457.5854341740.012.1846153846478.6153846151.1428571428633.4214177979394.4955828490.0121.402456367478.6153846150.033.4214177979478.6153846150.0621.415384615478.6153846150.0611.062443439478.6153846152.212.1846153846316.6847662146.2666666666712.184615384617.35847159381.38461538462126.863348416376.7010093981.2139.605429864390.289592761.33333333333144.506230421380.4756158870.28571428571412.1846153846457.5854341741.33333333333621.415384615380.4756158872.2306.232648799316.6847662140.0144.506230421478.6153846151.38461538462306.232648799376.7010093980.25306.232648799460.2141779790.25337.107692308460.2141779796.26666666667306.23264879917.35847159380.666666666667356.22081448429.5455002510.0356.22081448478.6153846150.075.8950226244478.6153846151.33333333333356.22081448380.4756158870.222222222222306.232648799462.2587564940.012.1846153846478.6153846151.77777777778621.415384615347.7623596450.012.1846153846478.6153846150.0621.415384615478.6153846150.0621.415384615478.6153846150.25611.062443439460.2141779790.036.0760180995478.6153846150.0611.062443439478.6153846150.036.0760180995478.6153846150.2536.0760180995460.2141779792.236.0760180995316.6847662140.0144.506230421478.6153846150.012.1846153846478.6153846150.0139.605429864478.6153846153.71428571429611.062443439205.2260288732.2356.22081448316.6847662140.25144.506230421460.2141779790.0356.22081448478.6153846151.33333333333611.062443439380.4756158870.0144.506230421478.6153846151.38461538462356.22081448376.7010093983.07692307692611.062443439252.1389952430.012.1846153846478.6153846150.222222222222621.415384615462.2587564940.0621.415384615478.6153846150.222222222222182.079034691462.2587564940.033.4214177979478.6153846150.0611.062443439478.6153846150.25611.062443439460.2141779790.0306.232648799478.6153846150.28571428571412.1846153846457.5854341740.0306.232648799478.6153846150.012.1846153846478.6153846150.0356.22081448478.6153846150.012.1846153846478.6153846150.036.0760180995478.6153846150.0367.142598578478.6153846150.012.1846153846478.6153846153.7142857142936.0760180995205.2260288730.25611.062443439460.2141779790.0155.533031674478.6153846153.0769230769212.1846153846252.1389952430.0367.142598578478.6153846150.0621.415384615478.6153846151.5356.22081448368.2081447966.2666666666739.489075630317.35847159380.285714285714182.079034691457.5854341740.0621.415384615478.6153846150.0621.415384615478.6153846150.0356.22081448478.6153846150.666666666667356.22081448429.5455002510.0337.107692308478.6153846150.0337.107692308478.6153846150.0337.107692308478.6153846150.28571428571412.1846153846457.5854341740.285714285714155.533031674457.5854341740.25367.142598578460.2141779790.036.0760180995478.6153846150.0611.062443439478.6153846150.0611.062443439478.6153846150.0144.506230421478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846151.3846153846212.1846153846376.7010093980.0306.232648799478.6153846150.0306.232648799478.6153846151.33333333333306.232648799380.4756158870.0356.22081448478.6153846150.571428571429621.415384615436.5554837320.0337.107692308478.6153846150.0611.062443439478.6153846150.25367.142598578460.2141779790.0621.415384615478.6153846153.07692307692367.142598578252.1389952431.33333333333337.107692308380.4756158873.412.1846153846228.3589743590.0155.533031674478.6153846150.0155.533031674478.6153846150.012.1846153846478.6153846152.0621.415384615331.4057315230.0621.415384615478.6153846150.0203.315837104478.6153846151.3333333333336.0760180995380.4756158871.212.1846153846390.289592761.33333333333126.863348416380.4756158870.0139.605429864478.6153846150.0611.062443439478.6153846150.012.1846153846478.6153846150.0306.232648799478.6153846150.0182.079034691478.6153846150.0356.22081448478.6153846150.012.1846153846478.6153846151.3333333333312.1846153846380.4756158870.033.4214177979478.6153846150.22222222222212.1846153846462.2587564940.22222222222236.0760180995462.2587564940.0611.062443439478.6153846150.25621.415384615460.2141779793.636.0760180995213.638009050.0611.062443439478.6153846150.25611.062443439460.2141779792.0621.415384615331.4057315230.0611.062443439478.6153846151.33333333333611.062443439380.4756158870.012.1846153846478.6153846150.0144.506230421478.6153846150.0144.506230421478.6153846150.0182.079034691478.6153846150.012.1846153846478.6153846150.0306.232648799478.6153846150.0306.232648799478.6153846150.0367.142598578478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0126.863348416478.6153846150.0126.863348416478.6153846150.0356.22081448478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846151.33333333333621.415384615380.4756158870.0621.415384615478.6153846150.036.0760180995478.6153846150.2512.1846153846460.2141779790.0155.533031674478.6153846150.0155.533031674478.6153846150.012.1846153846478.6153846151.77777777778611.062443439347.7623596450.0306.232648799478.6153846150.0144.506230421478.6153846153.71428571429126.863348416205.2260288730.0356.22081448478.6153846150.0621.415384615478.6153846150.0356.22081448478.6153846151.2611.062443439390.289592760.036.0760180995478.6153846150.0306.232648799478.6153846150.25306.232648799460.2141779790.012.1846153846478.6153846150.012.1846153846478.6153846150.0611.062443439478.6153846150.012.1846153846478.6153846150.0367.142598578478.6153846150.012.1846153846478.6153846150.0367.142598578478.6153846153.612.1846153846213.638009050.0621.415384615478.6153846150.0621.415384615478.6153846150.0126.863348416478.6153846150.066.7935358759478.6153846150.0155.533031674478.6153846150.25222.428959276460.2141779791.38461538462611.062443439376.7010093980.0306.232648799478.6153846150.0367.142598578478.6153846150.571428571429621.415384615436.5554837321.2155.533031674390.289592766.375367.1425985789.384615384626.375121.4024563679.384615384620.25611.062443439460.2141779792.275.8950226244316.6847662141.14285714286611.062443439394.4955828493.4621.415384615228.3589743596.26666666667182.07903469117.35847159386.26666666667337.10769230817.35847159381.77777777778621.415384615347.7623596452.2182.079034691316.6847662140.0144.506230421478.6153846151.33333333333621.415384615380.4756158871.38461538462621.415384615376.7010093980.0621.415384615478.6153846150.0611.062443439478.6153846150.285714285714611.062443439457.5854341740.0611.062443439478.6153846150.222222222222222.428959276462.2587564942.2621.415384615316.6847662142.2611.062443439316.6847662140.0611.062443439478.6153846150.012.1846153846478.6153846150.0621.415384615478.6153846152.2367.142598578316.6847662140.0139.605429864478.6153846153.07692307692621.415384615252.1389952436.26666666667367.14259857817.35847159380.25611.062443439460.2141779791.77777777778139.605429864347.7623596451.33333333333611.062443439380.4756158876.375139.6054298649.384615384623.71428571429611.062443439205.2260288733.07692307692356.22081448252.1389952430.666666666667367.142598578429.5455002513.6367.142598578213.638009050.0621.415384615478.6153846150.0139.605429864478.6153846151.33333333333621.415384615380.4756158873.71428571429306.232648799205.2260288736.2666666666712.184615384617.35847159380.57142857142975.8950226244436.5554837320.075.8950226244478.6153846153.0769230769236.0760180995252.1389952430.036.0760180995478.6153846151.512.1846153846368.2081447960.2533.4214177979460.2141779793.07692307692621.415384615252.1389952430.666666666667337.107692308429.5455002510.0337.107692308478.6153846151.33333333333356.22081448380.4756158870.25356.22081448460.2141779790.2512.1846153846460.2141779790.036.0760180995478.6153846150.012.1846153846478.6153846150.0337.107692308478.6153846151.14285714286337.107692308394.4955828491.5621.415384615368.2081447960.0155.533031674478.6153846150.0621.415384615478.6153846150.0155.533031674478.6153846150.012.1846153846478.6153846151.212.1846153846390.289592760.22222222222236.0760180995462.2587564943.6337.107692308213.638009050.0611.062443439478.6153846150.0155.533031674478.6153846153.4611.062443439228.3589743590.0139.605429864478.6153846150.666666666667139.605429864429.5455002513.0769230769212.1846153846252.1389952430.22222222222212.1846153846462.2587564940.033.4214177979478.6153846151.7777777777812.1846153846347.7623596451.7777777777812.1846153846347.7623596450.012.1846153846478.6153846150.25155.533031674460.2141779790.25155.533031674460.2141779790.25222.428959276460.2141779796.375306.2326487999.384615384621.536.0760180995368.2081447960.012.1846153846478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0155.533031674478.6153846150.039.4890756303478.6153846153.0769230769239.4890756303252.1389952430.012.1846153846478.6153846153.612.1846153846213.638009050.2512.1846153846460.2141779790.0367.142598578478.6153846150.0182.079034691478.6153846150.0356.22081448478.6153846153.71428571429621.415384615205.2260288730.285714285714356.22081448457.5854341741.77777777778621.415384615347.7623596456.37512.18461538469.384615384620.012.1846153846478.6153846150.012.1846153846478.6153846151.512.1846153846368.2081447960.012.1846153846478.6153846150.2512.1846153846460.2141779790.012.1846153846478.6153846150.036.0760180995478.6153846150.0144.506230421478.6153846150.0139.605429864478.6153846150.0139.605429864478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0139.605429864478.6153846156.26666666667139.60542986417.35847159383.71428571429139.605429864205.2260288736.375337.1076923089.384615384623.412.1846153846228.3589743592.212.1846153846316.6847662140.0155.533031674478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0621.415384615478.6153846151.236.0760180995390.289592760.0611.062443439478.6153846150.012.1846153846478.6153846153.07692307692144.506230421252.1389952431.3333333333312.1846153846380.4756158873.6139.605429864213.638009050.012.1846153846478.6153846150.0144.506230421478.6153846151.7777777777812.1846153846347.7623596450.012.1846153846478.6153846150.0203.315837104478.6153846151.38461538462621.415384615376.7010093980.0203.315837104478.6153846150.25203.315837104460.2141779796.26666666667621.41538461517.35847159381.3333333333312.1846153846380.4756158870.0611.062443439478.6153846150.0139.605429864478.6153846150.0367.142598578478.6153846150.0126.863348416478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0356.22081448478.6153846150.0621.415384615478.6153846150.012.1846153846478.6153846150.0337.107692308478.6153846150.012.1846153846478.6153846150.0155.533031674478.6153846151.5337.107692308368.2081447966.375337.1076923089.384615384626.26666666667356.2208144817.35847159381.2337.107692308390.289592760.0222.428959276478.6153846153.412.1846153846228.3589743590.0222.428959276478.6153846153.412.1846153846228.3589743590.0306.232648799478.6153846150.012.1846153846478.6153846150.0144.506230421478.6153846150.012.1846153846478.6153846156.2666666666712.184615384617.35847159380.0611.062443439478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0367.142598578478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.066.7935358759478.6153846151.512.1846153846368.2081447960.571428571429155.533031674436.5554837320.012.1846153846478.6153846153.07692307692611.062443439252.1389952430.0155.533031674478.6153846152.2367.142598578316.6847662146.26666666667155.53303167417.35847159382.2611.062443439316.6847662143.71428571429155.533031674205.2260288731.14285714286621.415384615394.4955828496.2666666666736.076018099517.35847159380.666666666667222.428959276429.5455002516.26666666667121.40245636717.35847159386.375337.1076923089.384615384621.77777777778611.062443439347.7623596453.4611.062443439228.3589743596.375182.0790346919.384615384621.77777777778222.428959276347.7623596451.3846153846212.1846153846376.7010093986.375139.6054298649.384615384626.375144.5062304219.384615384626.37512.18461538469.384615384626.2666666666712.184615384617.35847159386.2666666666739.489075630317.35847159386.2666666666712.184615384617.35847159382.233.4214177979316.6847662146.375222.4289592769.384615384626.26666666667222.42895927617.35847159386.2666666666712.184615384617.35847159380.012.1846153846478.6153846156.37512.18461538469.384615384623.71428571429222.428959276205.2260288731.3333333333312.1846153846380.4756158876.375306.2326487999.384615384623.71428571429611.062443439205.2260288736.2666666666736.076018099517.35847159381.33333333333182.079034691380.4756158876.26666666667139.60542986417.35847159381.33333333333621.415384615380.4756158876.26666666667367.14259857817.35847159383.6306.232648799213.638009053.7142857142975.8950226244205.2260288733.71428571429356.22081448205.2260288736.37512.18461538469.384615384621.3333333333312.1846153846380.4756158876.375139.6054298649.384615384623.07692307692367.142598578252.1389952430.0611.062443439478.6153846150.66666666666766.7935358759429.5455002510.66666666666712.1846153846429.5455002510.25306.232648799460.2141779790.2512.1846153846460.2141779790.0155.533031674478.6153846150.22222222222236.0760180995462.2587564946.375306.2326487999.384615384623.475.8950226244228.3589743593.412.1846153846228.3589743593.6139.605429864213.638009053.636.0760180995213.638009050.036.0760180995478.6153846150.2512.1846153846460.2141779790.012.1846153846478.6153846153.412.1846153846228.3589743593.4121.402456367228.3589743596.375155.5330316749.384615384621.512.1846153846368.2081447966.37512.18461538469.384615384621.512.1846153846368.2081447960.012.1846153846478.6153846150.0126.863348416478.6153846150.2533.4214177979460.2141779793.4356.22081448228.3589743596.2666666666712.184615384617.35847159381.512.1846153846368.2081447966.26666666667337.10769230817.35847159381.3333333333312.1846153846380.4756158871.3333333333375.8950226244380.4756158870.0306.232648799478.6153846150.033.4214177979478.6153846150.22222222222212.1846153846462.2587564940.0182.079034691478.6153846150.0182.079034691478.6153846150.012.1846153846478.6153846151.536.0760180995368.2081447961.536.0760180995368.2081447962.236.0760180995316.6847662143.07692307692621.415384615252.1389952430.25155.533031674460.2141779790.012.1846153846478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846151.512.1846153846368.2081447960.28571428571412.1846153846457.5854341740.285714285714306.232648799457.5854341740.012.1846153846478.6153846150.0356.22081448478.6153846150.036.0760180995478.6153846153.7142857142912.1846153846205.2260288731.7777777777812.1846153846347.7623596453.612.1846153846213.638009056.375367.1425985789.384615384623.639.4890756303213.638009056.375182.0790346919.384615384620.0621.415384615478.6153846150.012.1846153846478.6153846150.012.1846153846478.6153846150.0155.533031674478.6153846150.012.1846153846478.6153846150.036.0760180995478.6153846150.012.1846153846478.6153846150.2512.1846153846460.2141779791.3846153846212.1846153846376.7010093981.3333333333312.1846153846380.4756158871.3333333333312.1846153846380.4756158870.012.1846153846478.6153846150.012.1846153846478.6153846151.3333333333312.1846153846380.4756158871.33333333333611.062443439380.4756158871.33333333333367.142598578380.4756158873.4621.415384615228.3589743590.0337.107692308478.6153846150.0222.428959276478.6153846151.512.1846153846368.2081447960.012.1846153846478.6153846150.012.1846153846478.6153846156.37512.18461538469.384615384620.25126.863348416460.2141779796.2666666666712.184615384617.35847159380.012.1846153846478.6153846151.38461538462306.232648799376.7010093980.0139.605429864478.6153846151.33333333333356.22081448380.4756158870.012.1846153846478.6153846151.3846153846212.1846153846376.7010093980.0182.079034691478.6153846150.012.1846153846478.6153846152.012.1846153846331.4057315236.375144.5062304219.384615384622.012.1846153846331.4057315232.036.0760180995331.4057315236.375611.0624434399.384615384620.0139.605429864478.6153846156.2666666666712.184615384617.35847159381.3333333333312.1846153846380.4756158873.7142857142912.1846153846205.2260288731.212.1846153846390.289592760.012.1846153846478.6153846150.012.1846153846478.6153846153.612.1846153846213.638009056.37512.18461538469.384615384620.012.1846153846478.6153846153.412.1846153846228.3589743590.012.1846153846478.6153846151.512.1846153846368.2081447963.4155.533031674228.3589743593.4621.415384615228.3589743593.6611.062443439213.638009053.4126.863348416228.3589743592.212.1846153846316.6847662140.0337.107692308478.6153846152.212.1846153846316.6847662140.0337.107692308478.6153846153.0769230769212.1846153846252.1389952430.012.1846153846478.6153846151.3846153846212.1846153846376.7010093980.012.1846153846478.6153846150.0611.062443439478.6153846156.2666666666712.184615384617.35847159380.012.1846153846478.6153846150.012.1846153846478.6153846153.7142857142912.1846153846205.2260288730.012.1846153846478.6153846150.012.1846153846478.6153846150.57142857142912.1846153846436.5554837320.0155.533031674478.6153846151.566.7935358759368.2081447960.012.1846153846478.6153846156.26666666667306.23264879917.35847159381.512.1846153846368.2081447963.71428571429222.428959276205.2260288731.5611.062443439368.2081447966.26666666667222.42895927617.35847159381.5367.142598578368.2081447966.37512.18461538469.384615384620.2512.1846153846460.2141779790.2512.1846153846460.2141779796.37536.07601809959.384615384620.012.1846153846478.6153846151.3846153846266.7935358759376.7010093981.512.1846153846368.2081447961.566.7935358759368.2081447960.0144.506230421478.6153846151.5144.506230421368.2081447960.57142857142912.1846153846436.5554837321.77777777778356.22081448347.7623596453.612.1846153846213.638009052.212.1846153846316.6847662146.375182.0790346919.384615384626.375155.5330316749.384615384622.2182.079034691316.6847662141.77777777778155.533031674347.7623596452.2621.415384615316.6847662146.37512.18461538469.384615384620.25337.107692308460.2141779793.412.1846153846228.3589743596.26666666667203.31583710417.35847159381.1428571428636.0760180995394.4955828491.14285714286611.062443439394.4955828492.036.0760180995331.4057315236.26666666667203.31583710417.35847159382.2139.605429864316.6847662140.66666666666712.1846153846429.5455002512.212.1846153846316.6847662140.666666666667139.605429864429.5455002510.0356.22081448478.6153846153.636.0760180995213.638009051.3846153846212.1846153846376.7010093980.0356.22081448478.6153846150.66666666666712.1846153846429.5455002512.2144.506230421316.6847662141.14285714286222.428959276394.4955828496.2666666666775.895022624417.35847159386.26666666667306.23264879917.35847159380.0139.605429864478.6153846153.0769230769212.1846153846252.1389952431.33333333333306.232648799380.4756158870.0139.605429864478.6153846153.412.1846153846228.3589743590.25337.107692308460.2141779790.012.1846153846478.6153846153.412.1846153846228.3589743591.7777777777812.1846153846347.7623596451.77777777778121.402456367347.7623596451.1428571428612.1846153846394.4955828490.0121.402456367478.6153846156.37575.89502262449.384615384620.22222222222275.8950226244462.2587564946.37533.42141779799.384615384620.222222222222144.506230421462.2587564943.412.1846153846228.3589743591.7777777777833.4214177979347.7623596456.37512.18461538469.384615384626.2666666666736.076018099517.35847159382.212.1846153846316.6847662140.22222222222236.0760180995462.2587564940.25222.428959276460.2141779790.222222222222222.428959276462.2587564940.2512.1846153846460.2141779790.57142857142912.1846153846436.5554837320.571428571429356.22081448436.5554837326.2666666666712.184615384617.35847159386.2666666666766.793535875917.35847159383.612.1846153846213.638009056.37512.18461538469.384615384621.33333333333155.533031674380.4756158871.512.1846153846368.2081447966.375155.5330316749.384615384620.0139.605429864478.6153846153.0769230769239.4890756303252.1389952431.14285714286144.506230421394.4955828491.38461538462306.232648799376.7010093981.1428571428639.4890756303394.4955828490.57142857142933.4214177979436.5554837321.33333333333121.402456367380.4756158876.375144.5062304219.384615384620.25611.062443439460.2141779791.3333333333336.0760180995380.4756158876.37566.79353587599.384615384620.57142857142936.0760180995436.5554837326.375139.6054298649.384615384622.2337.107692308316.6847662141.3846153846212.1846153846376.7010093981.38461538462337.107692308376.7010093986.2666666666712.184615384617.35847159383.07692307692155.533031674252.1389952431.512.1846153846368.2081447963.0769230769212.1846153846252.1389952436.26666666667155.53303167417.35847159386.37539.48907563039.384615384621.2121.402456367390.289592761.14285714286621.415384615394.4955828491.239.4890756303390.289592761.2621.415384615390.289592761.1428571428639.4890756303394.4955828490.22222222222212.1846153846462.2587564943.666.7935358759213.638009050.222222222222356.22081448462.2587564940.0356.22081448478.6153846150.22222222222266.7935358759462.2587564941.212.1846153846390.289592766.26666666667222.42895927617.35847159380.222222222222121.402456367462.2587564941.38461538462306.232648799376.7010093986.2666666666733.421417797917.35847159381.38461538462126.863348416376.7010093981.233.4214177979390.289592761.38461538462611.062443439376.7010093980.2512.1846153846460.2141779790.22222222222236.0760180995462.2587564940.012.1846153846478.6153846150.22222222222212.1846153846462.2587564940.036.0760180995478.6153846152.212.1846153846316.6847662143.6182.079034691213.638009050.0139.605429864478.6153846151.38461538462139.605429864376.7010093980.039.4890756303478.6153846150.012.1846153846478.6153846153.612.1846153846213.638009056.37512.18461538469.384615384626.26666666667144.50623042117.35847159383.6611.062443439213.638009056.375356.220814489.384615384626.2666666666766.793535875917.35847159386.2666666666712.184615384617.35847159386.26666666667611.06244343917.35847159380.2512.1846153846460.2141779793.7142857142939.4890756303205.2260288731.77777777778222.428959276347.7623596453.612.1846153846213.638009051.33333333333306.232648799380.4756158873.0769230769212.1846153846252.1389952431.33333333333356.22081448380.4756158873.71428571429306.232648799205.2260288736.375611.0624434399.384615384623.71428571429621.415384615205.2260288731.3333333333336.0760180995380.4756158876.26666666667182.07903469117.35847159381.7777777777836.0760180995347.7623596453.6337.107692308213.638009053.07692307692121.402456367252.1389952433.6121.402456367213.638009053.07692307692337.107692308252.1389952433.4121.402456367228.3589743590.012.1846153846478.6153846156.2666666666712.184615384617.35847159381.3333333333312.1846153846380.4756158871.3333333333312.1846153846380.4756158870.666666666667155.533031674429.5455002510.666666666667182.079034691429.5455002511.5182.079034691368.2081447966.37575.89502262449.384615384620.012.1846153846478.6153846153.7142857142912.1846153846205.2260288730.012.1846153846478.6153846150.0367.142598578478.6153846153.675.8950226244213.638009050.666666666667611.062443439429.5455002513.07692307692139.605429864252.1389952433.0769230769212.1846153846252.1389952436.375356.220814489.384615384621.3333333333312.1846153846380.4756158876.2666666666766.793535875917.35847159380.066.7935358759478.6153846156.2666666666775.895022624417.35847159381.1428571428612.1846153846394.4955828493.07692307692121.402456367252.1389952430.2512.1846153846460.2141779793.0769230769212.1846153846252.1389952431.38461538462337.107692308376.7010093981.38461538462139.605429864376.7010093983.412.1846153846228.3589743591.3846153846212.1846153846376.7010093981.536.0760180995368.2081447966.37533.42141779799.384615384620.012.1846153846478.6153846156.37512.18461538469.384615384620.22222222222212.1846153846462.2587564946.37512.18461538469.384615384621.3333333333336.0760180995380.4756158876.26666666667155.53303167417.35847159383.6306.232648799213.638009053.6621.415384615213.638009051.33333333333337.107692308380.4756158873.6611.062443439213.638009053.0769230769236.0760180995252.1389952433.0769230769239.4890756303252.1389952430.012.1846153846478.6153846150.222222222222121.402456367462.2587564941.1428571428612.1846153846394.4955828490.22222222222212.1846153846462.2587564946.37512.18461538469.384615384626.2666666666712.184615384617.35847159380.0222.428959276478.6153846150.0611.062443439478.6153846151.2144.506230421390.289592761.33333333333126.863348416380.4756158871.38461538462139.605429864376.7010093980.039.4890756303478.6153846156.375139.6054298649.384615384623.07692307692222.428959276252.1389952431.3846153846212.1846153846376.7010093983.07692307692144.506230421252.1389952433.0769230769236.0760180995252.1389952433.436.0760180995228.3589743593.07692307692611.062443439252.1389952433.675.8950226244213.638009053.612.1846153846213.638009050.66666666666712.1846153846429.5455002513.6139.605429864213.638009053.0769230769233.4214177979252.1389952430.012.1846153846478.6153846156.375182.0790346919.384615384620.012.1846153846478.6153846156.37512.18461538469.384615384626.37512.18461538469.384615384626.2666666666736.076018099517.35847159380.2512.1846153846460.2141779796.2666666666712.184615384617.35847159380.2512.1846153846460.2141779790.2536.0760180995460.2141779790.25222.428959276460.2141779791.3846153846212.1846153846376.7010093980.012.1846153846478.6153846151.3333333333312.1846153846380.4756158876.26666666667367.14259857817.35847159383.6222.428959276213.638009051.3846153846236.0760180995376.7010093983.612.1846153846213.638009056.26666666667139.60542986417.35847159381.3846153846212.1846153846376.7010093983.6144.506230421213.638009056.26666666667306.23264879917.35847159380.012.1846153846478.6153846156.37533.42141779799.384615384626.37512.18461538469.384615384621.7777777777833.4214177979347.7623596450.22222222222212.1846153846462.2587564946.2666666666712.184615384617.35847159386.2666666666736.076018099517.35847159383.0769230769212.1846153846252.1389952430.039.4890756303478.6153846153.0769230769212.1846153846252.1389952430.012.1846153846478.6153846153.612.1846153846213.638009050.012.1846153846478.6153846150.2512.1846153846460.2141779793.7142857142912.1846153846205.2260288730.012.1846153846478.6153846150.25367.142598578460.2141779796.2666666666736.076018099517.35847159381.512.1846153846368.2081447960.0306.232648799478.6153846153.7142857142912.1846153846205.2260288736.37512.18461538469.384615384623.6155.533031674213.638009050.285714285714611.062443439457.5854341741.7777777777839.4890756303347.7623596456.37512.18461538469.384615384626.37512.18461538469.384615384623.612.1846153846213.638009053.675.8950226244213.638009053.412.1846153846228.3589743593.412.1846153846228.3589743593.412.1846153846228.3589743590.039.4890756303478.6153846151.539.4890756303368.2081447963.7142857142936.0760180995205.2260288730.2512.1846153846460.2141779796.2666666666712.184615384617.35847159386.2666666666712.184615384617.35847159381.3846153846212.1846153846376.7010093980.012.1846153846478.6153846150.012.1846153846478.6153846150.0144.506230421478.6153846153.0769230769212.1846153846252.1389952433.0769230769212.1846153846252.1389952433.07692307692139.605429864252.1389952433.612.1846153846213.638009056.37566.79353587599.384615384623.412.1846153846228.3589743596.2666666666712.184615384617.35847159383.7142857142936.0760180995205.2260288736.37512.18461538469.384615384623.71428571429306.232648799205.2260288733.4139.605429864228.3589743590.0337.107692308478.6153846151.512.1846153846368.2081447961.512.1846153846368.2081447960.012.1846153846478.6153846156.375203.3158371049.384615384626.37512.18461538469.384615384622.012.1846153846331.4057315230.25139.605429864460.2141779790.0126.863348416478.6153846151.2139.605429864390.289592761.3333333333312.1846153846380.4756158876.2666666666712.184615384617.35847159380.012.1846153846478.6153846153.0769230769212.1846153846252.1389952431.7777777777812.1846153846347.7623596453.612.1846153846213.638009050.012.1846153846478.6153846150.0139.605429864478.6153846150.22222222222212.1846153846462.2587564940.033.4214177979478.6153846150.2533.4214177979460.2141779796.2666666666712.184615384617.35847159386.37536.07601809959.384615384620.25356.22081448460.2141779796.2666666666712.184615384617.35847159386.2666666666736.076018099517.35847159386.375203.3158371049.384615384626.2666666666712.184615384617.35847159386.26666666667139.60542986417.35847159380.012.1846153846478.6153846151.3846153846212.1846153846376.7010093981.3846153846212.1846153846376.7010093981.7777777777812.1846153846347.7623596450.012.1846153846478.6153846153.0769230769212.1846153846252.1389952433.0769230769212.1846153846252.1389952433.7142857142912.1846153846205.2260288730.012.1846153846478.6153846150.012.1846153846478.6153846151.212.1846153846390.289592761.212.1846153846390.289592763.612.1846153846213.638009050.012.1846153846478.6153846150.012.1846153846478.6153846156.375139.6054298649.384615384626.37512.18461538469.384615384620.2512.1846153846460.2141779790.036.0760180995478.6153846151.512.1846153846368.2081447961.512.1846153846368.2081447960.012.1846153846478.6153846156.26666666667182.07903469117.35847159383.0769230769212.1846153846252.1389952431.3846153846212.1846153846376.7010093981.2367.142598578390.289592763.612.1846153846213.638009056.37512.18461538469.384615384623.612.1846153846213.638009056.26666666667126.86334841617.35847159380.2512.1846153846460.2141779793.0769230769212.1846153846252.1389952433.0769230769236.0760180995252.1389952430.012.1846153846478.6153846150.012.1846153846478.6153846156.2666666666712.184615384617.35847159380.012.1846153846478.6153846153.7142857142912.1846153846205.2260288730.012.1846153846478.6153846153.7142857142912.1846153846205.2260288730.0356.22081448478.6153846156.37512.18461538469.384615384626.37512.18461538469.384615384621.212.1846153846390.289592760.57142857142912.1846153846436.5554837321.512.1846153846368.2081447962.236.0760180995316.6847662146.26666666667144.50623042117.35847159383.0769230769212.1846153846252.1389952433.7142857142912.1846153846205.2260288736.37566.79353587599.384615384621.5126.863348416368.2081447963.71428571429621.415384615205.226028873wins 1wins 2ties" ], "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before any conclussions: there is more there than what you can see with your eyes. At some location, there could be more than 1 point, and you only see the one on the top.\n", "\n", "The first graph tells us something that most people already expect: there is a small tendency on the result, the team with the better matches won percent tends to win. The second graph also shows a similar relation between podium score yearly and the result, even if it's not visible to the eye because of the overlapping of dots.\n", "\n", "But remember, the classifier can learn a lot more than just those simple relations based on the info we give to it. These graphs were just a screening to confirm some basic intuitions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Learn\n", "-----\n", "\n", "Ok, now we have everything we need. Lets feed the selected input features to a the neural network classifier, and let it learn.\n", "\n", "We have to normalize the data, otherwise the features with smaller values will impose a greater weight on the prediction.\n", "\n", "Also, we use a percentage of the inputs to train, but keep the rest \"hidden\", we don't let the classifier see them while learning. After the training we use those inputs to \"test\" the ability of the classifier to predict data it has never seen before (and data we already know the correct answer)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "inputs, outputs = extract_samples(matches,\n", " input_features,\n", " output_feature)\n", "\n", "normalizer, inputs = normalize(inputs)\n", "\n", "train_inputs, train_outputs, test_inputs, test_outputs = split_samples(inputs, outputs)\n", "\n", "n = buildNetwork(len(input_features),\n", " 10 * len(input_features),\n", " 10 * len(input_features),\n", " 1,\n", " outclass=SigmoidLayer,\n", " bias=True)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To be able to evaluate the results and show progress on the learning cycle, we need these two functions wich help us calculate how well the network can predict the results from the matches used to learn, and the matches it doesn't know." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def neural_result(input):\n", " \"\"\"Call the neural network, and translates its output to a match result.\"\"\"\n", " n_output = n.activate(input) \n", " if n_output >= 0.5:\n", " return 2\n", " else:\n", " return 1\n", " \n", "def test_network():\n", " \"\"\"Calculate train and test sets errors.\"\"\"\n", " print (100 - percentError(map(neural_result, train_inputs), train_outputs), \n", " 100 - percentError(map(neural_result, test_inputs), test_outputs))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a train set (a kind of dataset that pybrain uses to train neural networks), and display initial accuracy on both sets (train and test)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "train_set = ClassificationDataSet(len(input_features))\n", "\n", "for i, input_line in enumerate(train_inputs):\n", " train_set.addSample(train_inputs[i], [train_outputs[i] - 1])\n", "\n", "trainer = BackpropTrainer(n, dataset=train_set, momentum=0.5, weightdecay=0.0)\n", "\n", "train_set.assignClasses()\n", "\n", "test_network()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(50.78979343863912, 54.51263537906137)\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Train the network, for a given number of iterations. You can re-run this step many times, and it will keep learning, but as you know, if you train too much you can end overfitting the training data (this is visible when the test set accuracy starts to decrease)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(20):\n", " trainer.train()\n", " test_network()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(72.17496962332928, 77.9783393501805)\n", "(73.02551640340218, 75.09025270758123)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.63304981773997, 75.81227436823104)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.63304981773997, 75.45126353790613)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.87606318347508, 74.72924187725631)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.24058323207777, 74.0072202166065)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.36208991494533, 74.36823104693141)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.87606318347508, 76.17328519855596)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.48359659781288, 75.09025270758123)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.99756986634264, 75.45126353790613)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(73.2685297691373, 72.20216606498195)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.726609963548, 74.36823104693141)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.726609963548, 74.72924187725631)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.24058323207777, 75.81227436823104)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.60510328068044, 75.09025270758123)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.96962332928311, 74.72924187725631)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.726609963548, 75.09025270758123)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.24058323207777, 72.92418772563177)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.36208991494533, 74.72924187725631)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "(74.60510328068044, 76.17328519855596)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The closer this score is to 100%, the better the classifier is doing its predictions. A score of 100 means the classifier allways predicts the exact real result, something impossible.\n", "\n", "And something around 75% sounds impressive, but in fact is not **that** good. It's pretty good, but consider that just throwing a coin will get you 50%. So this sits in the middle between throwing a coin and having a time machine." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Predict\n", "-------\n", "\n", "With the classifier already trained, we can start making predictions. But we need a little function able to translate inputs like this: (2014, 'Argentina', 'Brazil'), to the numeric inputs the classifier expects (based on the input features).\n", "\n", "This function does the conversion, also normalizes the data with the same normalizer used before, and then just asks the classifier for the prediction." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def predict(year, team1, team2):\n", " inputs = []\n", " \n", " for feature in input_features:\n", " from_team_2 = '_2' in feature\n", " feature = feature.replace('_2', '')\n", " \n", " if feature in team_stats.columns.values:\n", " team = team2 if from_team_2 else team1\n", " value = team_stats.loc[team, feature]\n", " elif feature == 'year':\n", " value = year\n", " else:\n", " raise ValueError(\"Don't know where to get feature: \" + feature)\n", " \n", " inputs.append(value)\n", " \n", " inputs = normalizer.transform(inputs)\n", " result = neural_result(inputs)\n", " \n", " if result == 0:\n", " return 'tie'\n", " elif result == 1:\n", " return team1\n", " elif result == 2:\n", " return team2\n", " else:\n", " return 'Unknown result: ' + str(result)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some predictions about the past, compared to real results:\n", "----------------------------------------------------------\n", "\n", "Even while we know those results and some of them where used to train, that doesn't guarantee the real result is what the classifier will predict." ] }, { "cell_type": "code", "collapsed": false, "input": [ "predict(1950, 'Mexico', 'Brazil') # real result: 4-0 wins Brazil" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "'Brazil'" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(1990, 'United Arab Emirates', 'Colombia') # real result: 2-0 wins Colombia\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "'Colombia'" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2002, 'South Africa', 'Spain') # real result: 2-3 wins Spain" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "'Spain'" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2010, 'Japan', 'Cameroon') # real result: 1-0 wins Japan" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "'Japan'" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some predictions about the future:\n", "----------------------------------\n", "\n", "(at least these where \"future\" at the moment of programming)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2014, 'Argentina', 'Brazil')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "'Argentina'" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2014, 'Spain', 'Haiti')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "'Spain'" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2014, 'Russia', 'Germany')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "'Germany'" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "predict(2014, 'Russia', 'Russia')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "'Russia'" ] } ], "prompt_number": 22 } ], "metadata": {} } ] }