Atelier : paris sportifs et intelligence collective

Conjuguons football et machine learning !

a marqué ce sujet comme résolu.

pas de soucis :) mais ça serait dommage de passer à côté d'une semaine de prono et pour ton expérience. Eventuellement on pourrait t'aider à mettre au moins les résultats de la journée déjà mais après les calculs que tu fais ça va être plus dur.

Résultats de la 5e journée de ligue 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Vendredi 12 septembre 2014
20:30   Olympique Lyonnais       2 - 1  AS Monaco 

Samedi 13 septembre 2014
17:00   Stade Rennais FC         1 - 1  Paris Saint-Germain   
20:00   SC Bastia                1 - 1  RC Lens   
20:00   Montpellier Hérault SC   1 - 0  FC Lorient  
20:00   OGC Nice                 1 - 0  FC Metz    
20:00   Stade de Reims           2 - 0  Toulouse FC 
20:00   AS Saint-Etienne         1 - 0  SM Caen     

Dimanche 14 septembre 2014
14:00   LOSC Lille           2 - 0      FC Nantes    
17:00   EA Guingamp          2 - 1      Girondins de Bordeaux  
21:00   Evian TG FC          1 - 3      Olympique de Marseille

Cinquième journée de Ligue 1

Pour participer, il vous suffit de copier/coller le code markdown suivant, d'indiquer si c'est la première fois que vous participez à l'atelier puis de remplacer pseudo par votre pseudo et N par votre pronostic.

Vous pouvez poster vos pronostics jusqu'à vendredi 19 septembre, 12h.

C'est la première fois que je participe (oui/non) :

match pseudo prono
19092014-ligue1-bordeaux-evian pseudo N
20092014-ligue1-marseille-rennes pseudo N
20092014-ligue1-lorient-reims pseudo N
20092014-ligue1-metz-bastia pseudo N
20092014-ligue1-nantes-nice pseudo N
20092014-ligue1-toulouse-caen pseudo N
21092014-ligue1-lille-montpellier pseudo N
21092014-ligue1-lens-saintetienne pseudo N
21092014-ligue1-monaco-guingamp pseudo N
21082014-ligue1-paris-lyon pseudo N

Bonne chance ;)

+0 -0

C'est la première fois que je participe (oui/non) : Non

match pseudo prono
19092014-ligue1-bordeaux-evian Asvin 1
20092014-ligue1-marseille-rennes Asvin 1
20092014-ligue1-lorient-reims Asvin N
20092014-ligue1-metz-bastia Asvin 1
20092014-ligue1-nantes-nice Asvin 2
20092014-ligue1-toulouse-caen Asvin N
21092014-ligue1-lille-montpellier Asvin N
21092014-ligue1-lens-saintetienne Asvin 2
21092014-ligue1-monaco-guingamp Asvin 1
21082014-ligue1-paris-lyon Asvin N

C'est la première fois que je participe (oui/non) : oui

match pseudo prono
19092014-ligue1-bordeaux-evian Angelo 1
20092014-ligue1-marseille-rennes Angelo 1
20092014-ligue1-lorient-reims Angelo N
20092014-ligue1-metz-bastia Angelo 1
20092014-ligue1-nantes-nice Angelo 2
20092014-ligue1-toulouse-caen Angelo 1
21092014-ligue1-lille-montpellier Angelo 1
21092014-ligue1-lens-saintetienne Angelo 2
21092014-ligue1-monaco-guingamp Angelo 1
21082014-ligue1-paris-lyon Angelo 2

C'est la première fois que je participe (oui/non) : Non

match pseudo prono
19092014-ligue1-bordeaux-evian Why not ? 1
20092014-ligue1-marseille-rennes Why not ? 1
20092014-ligue1-lorient-reims Why not ? N
20092014-ligue1-metz-bastia Why not ? N
20092014-ligue1-nantes-nice Why not ? 2
20092014-ligue1-toulouse-caen Why not ? 1
21092014-ligue1-lille-montpellier Why not ? N
21092014-ligue1-lens-saintetienne Why not ? 2
21092014-ligue1-monaco-guingamp Why not ? 1
21082014-ligue1-paris-lyon Why not ? 1
+0 -0

C'est la première fois que je participe (oui/non) : non

match pseudo prono
19092014-ligue1-bordeaux-evian hichbra 1
20092014-ligue1-marseille-rennes hichbra 1
20092014-ligue1-lorient-reims hichbra N
20092014-ligue1-metz-bastia hichbra 2
20092014-ligue1-nantes-nice hichbra 2
20092014-ligue1-toulouse-caen hichbra N
21092014-ligue1-lille-montpellier hichbra N
21092014-ligue1-lens-saintetienne hichbra 2
21092014-ligue1-monaco-guingamp hichbra 1
21082014-ligue1-paris-lyon hichbra N
+0 -0

Déterrage de l'espace

Salut, je me suis dit que ça pourrait être cool de relancer cet atelier pour la saison 2016/2017 qui vient à peine de commencer (3 journées). Le foot professionnel n'est pas forcément un sport réjouissant mais il est intéressant à plusieurs points de vue :

  • c'est un phénomène que tout le monde connait plus ou moins bien
  • les matchs sont des systèmes dont l'issue est difficilement prédictible
  • il y a pas mal de données facilement et gratuitement accessibles et qui sont simples à comprendre

C'est pour ces raisons que je relance la chose : avoir un support avec les sources et les données accessibles pour que tout le monde puisse essayer de bricoler :

  • une manière de prédire l'issue des matchs (à partir des matchs précédents ou des paris des camarades de zds)
  • un algorithme pour que Clem puisse faire des prédictions béton (elegance avait par exemple proposé un truc intéressant)

ou tout simplement s'amuse à grimper dans le classement des parieurs pour faire vivre un peu le forum :-)

Il y a quelques nouveautés pour cette saison. J'ai monté un repo github qui contient les sources permettant de faire tourner l'atelier et des données potentiellement intéressante pour ceux qui voudraient essayer de bidouiller quelque chose pour prédire les issues des matchs. Une page web github est associée au repo pour afficher les classements des joueurs et des équipes et qui automatiquement générée à chaque fois que le programme est lancé. Sur cette page vous trouverez aussi une figure présentant le classement Elo des équipes jouant la ligue 1 cette année. Mes prédictions de l'année seront basées sur ce classement. Mon implémentation sera ajoutée prochainement au repo et j'aimerais faire un petit article dessus – mais c'est un vœu pieux.


Allez, let's go!

Résumé des trois premières journées

Le PSG a changé de coach (Unai Emery remplace Laurent Blanc) mais a été battu par Monaco qui est en tête du championnat, avec Guingamp et Nice qui ont tous 7 points. Nice qui a flambé la fin du mercato estival en faisant appel aux services de Mario Balotelli, de Dante ainsi que de Younès Belhanda après s'être armé d'un nouvel entraîneur, Lucien Favre. Le prochain match de Nice, contre l'OM qui vient d'annoncer son rachat futur par Frank McCourt, un américain au passé trouble, est en conséquence très attendu !

Vos paris pour la quatrième journée

Voilà le code à insérer dans vos messages pour que je récupère vos paris. Pour les nouveaux, vous devez indiquer dans ce tableau votre pseudo à la place de 'pseudo' et l'issue que vous prédisez dans la colonne Prono : 1 pour la victoire de l'équipe jouant à domicile (la première affichée), N pour un nul et 2 pour la victoire de l'équipe visiteuse (la seconde affichée). Vous avez jusqu'à vendredi midi pour parier.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
|IdMatch              |Pseudo |Prono |
|:--------------------|:------|:-----|
|Lorient-Nancy        |pseudo |      |
|Lille-Monaco         |pseudo |      |
|Nice-Marseille       |pseudo |      |
|Lyon-Bordeaux        |pseudo |      |
|Paris SG-St Etienne  |pseudo |      |
|Bastia-Toulouse      |pseudo |      |
|Angers-Dijon         |pseudo |      |
|Rennes-Caen          |pseudo |      |
|Nantes-Metz          |pseudo |      |
|Guingamp-Montpellier |pseudo |      |
+1 -0

Allons, allons, hophophop, vendredi se rapproche :-)

Je propose trois paris sous mon pseudo : le premier se base sur le classement Elo que j'ai implémenté ici, le second sur un tirage aléatoire équiprobable et enfin mes propres paris. Quand j'aurai le temps, je rajouterai sur GitHub beaucoup de documentation sur mon programme ainsi qu'un outil qui simule la fin du championnat (étant donné un classement et un calendrier) pour estimer les probabilités qu'a une équipe d'arriver à chaque position du classement.

IdMatch Pseudo Prono
Lorient-Nancy adndebanane_elo 2
Lille-Monaco adndebanane_elo 2
Nice-Marseille adndebanane_elo 1
Lyon-Bordeaux adndebanane_elo 1
Paris SG-St Etienne adndebanane_elo 1
Bastia-Toulouse adndebanane_elo 2
Angers-Dijon adndebanane_elo 2
Rennes-Caen adndebanane_elo 2
Nantes-Metz adndebanane_elo 1
Guingamp-Montpellier adndebanane_elo 1
IdMatch Pseudo Prono
Lorient-Nancy adndebanane_hasard N
Lille-Monaco adndebanane_hasard 1
Nice-Marseille adndebanane_hasard 1
Lyon-Bordeaux adndebanane_hasard N
Paris SG-St Etienne adndebanane_hasard 1
Bastia-Toulouse adndebanane_hasard 1
Angers-Dijon adndebanane_hasard 2
Rennes-Caen adndebanane_hasard N
Nantes-Metz adndebanane_hasard 2
Guingamp-Montpellier adndebanane_hasard 1
IdMatch Pseudo Prono
Lorient-Nancy adndebanane 2
Lille-Monaco adndebanane 2
Nice-Marseille adndebanane 1
Lyon-Bordeaux adndebanane 1
Paris SG-St Etienne adndebanane 1
Bastia-Toulouse adndebanane N
Angers-Dijon adndebanane 2
Rennes-Caen adndebanane 1
Nantes-Metz adndebanane N
Guingamp-Montpellier adndebanane 1

Je ne suis plus beaucoup le foot, mais ça ne m'empêche pas d'avoir un avis définitif sur tous ces matchs.

IdMatch Rockaround Prono
Lorient-Nancy Rockaround 1
Lille-Monaco Rockaround N
Nice-Marseille Rockaround 1
Lyon-Bordeaux Rockaround 1
Paris SG-St Etienne Rockaround 1
Bastia-Toulouse Rockaround 2
Angers-Dijon Rockaround N
Rennes-Caen Rockaround N
Nantes-Metz Rockaround 1
Guingamp-Montpellier Rockaround N

Le classement Elo m'intéresse, dans quel fichier à tu mis l'algo ?

IdMatch Pseudo Prono
Lorient-Nancy mrBen N
Lille-Monaco mrBen N
Nice-Marseille mrBen 1
Lyon-Bordeaux mrBen 2
Paris SG-St Etienne mrBen N
Bastia-Toulouse mrBen 2
Angers-Dijon mrBen 2
Rennes-Caen mrBen N
Nantes-Metz mrBen 2
Guingamp-Montpellier mrBen 1
+0 -0

Allez hop, je clôture les pronos pour cette quatrième journée de championnat, qui débutera ce soir avec un match opposant le PSG à St-Étienne.

Les super-pronos de Clem pour ce match (basés sur nos pronos) :

IdMatch Prono Votes
Lorient-Nancy N 2
Lille-Monaco N 2
Nice-Marseille 1 5
Lyon-Bordeaux 1 3
Paris SG-St Etienne 1 4
Bastia-Toulouse 2 3
Angers-Dijon 2 4
Rennes-Caen N 3
Nantes-Metz 1 2
Guingamp-Montpellier 1 4

Le résumé de la quatrième journée de championnat en vidéo.

J'ai uploadé les résultats ici : https://adndebanane.github.io/zdsbets/ Je rajouterai au fur & à mesure de la saison (et de mon temps disponible) des figures et de la documentation sur le code, ainsi que le code du classement Elo demandé précédemment.

Pas mal de résultats difficiles à prédire cette journée (notamment ceux du PSG et de Lyon) – bravo à mrBen pour ses 4 victoires ! Clem prend un très mauvais départ, il va falloir se ressaisir !

Petite nouveauté de la saison : je récupère les côtes proposées par Bet365 et je calcule les profits théoriques réalisés pour chaque joueur, misant 10€ / match. Cela permet d'avoir une mesure de la prédictabilité des pronos réussis par les joueurs (plus une côte est grande, plus le prono est risqué pour le parieur). D'importants profits seront le résultat conjugué d'un nombre important de bons pronos ainsi que d'une certaine prise de risque.

Il ne s'agit pas d'inciter à faire des vrais paris.


Les pronos pour la cinquième journée de championnat :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
|IdMatch           |Pseudo |Prono |
|:-----------------|:------|:-----|
|Nancy-Nantes      |pseudo |      |
|St Etienne-Bastia |pseudo |      |
|Lorient-Lille     |pseudo |      |
|Bordeaux-Angers   |pseudo |      |
|Montpellier-Nice  |pseudo |      |
|Marseille-Lyon    |pseudo |      |
|Dijon-Metz        |pseudo |      |
|Toulouse-Guingamp |pseudo |      |
|Monaco-Rennes     |pseudo |      |
|Caen-Paris SG     |pseudo |      |
+1 -0
IdMatch Pseudo Prono
Nancy-Nantes mrBen N
St Etienne-Bastia mrBen N
Lorient-Lille mrBen 2
Bordeaux-Angers mrBen N
Montpellier-Nice mrBen 2
Marseille-Lyon mrBen 2
Dijon-Metz mrBen 2
Toulouse-Guingamp mrBen N
Monaco-Rennes mrBen 1
Caen-Paris SG mrBen 1

Pour info, j'utilise du hasard "amélioré" : deux lancers de pièce par match. Chaque lancer est influencé par le classement (les points), exemple : Dijon (3 points) - Metz (9 points), 3 chances sur 12 pour Dijon et 9 sur 12 pour Metz. Je fait deux lancers pour avoir une possibilité de nul.

Pour plus de précisions, j'ai mis mon code en Vala ci-dessous (attention les yeux) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using Gsl;

public static void main (string[] args)
{
    RNGType* T;
    RNG r;

    RNG.env_setup ();

    T = (RNGType*)RNGTypes.default;
    r = new RNG (T);

    for (int i = 0; i < 10; i++)
    {
        stdout.printf ("Team 1 : ");
        int points1 = int.parse (stdin.read_line ());
        int won1 = 0;

        stdout.printf ("Team 2 : ");
        int points2 = int.parse (stdin.read_line ());
        int won2 = 0;

        for (int j = 0; j < 2; j++)
        {
            double u = r.uniform ();
            u *= 1 + ((double) points2 / (double) points1);

            if (u < 1)
                won1++;
            else if (u > 1)
                won2++;
        }

        if (won1 > won2)
            stdout.printf ("1\n\n");
        else if (won1 < won2)
            stdout.printf ("2\n\n");
        else
            stdout.printf ("N\n\n");
    }
}

Maintenant, il faut que j'automatise un peu ; parce que renter 20 scores à la main ça va un moment, mais on a inventé la programmation depuis :p .

+1 -0

Voici pour moi. Ce serait bien de ne pas devoir taper son pseudo à chaque ligne, mais juste une fois.

IdMatch Pseudo Prono
Nancy-Nantes Rockaround 2
St Etienne-Bastia Rockaround 1
Lorient-Lille Rockaround 2
Bordeaux-Angers Rockaround N
Montpellier-Nice Rockaround 2
Marseille-Lyon Rockaround 2
Dijon-Metz Rockaround N
Toulouse-Guingamp Rockaround N
Monaco-Rennes Rockaround 1
Caen-Paris SG Rockaround 2

Et pour rebomdir sur l'intelligence collective, des membres de twitch ont battu un grand maître aux échecs. Bon, bien sûr, la plus part trichaient certainement, mais ça reste dans le sujet. Voir ici

Voici pour moi. Ce serait bien de ne pas devoir taper son pseudo à chaque ligne, mais juste une fois.

C'est vrai ; d'un autre côté, ça me fait un gagner un tout petit peu de temps de cette façon — et il est possible d'ouvrir le tableau dans un éditeur de texte et de chercher / remplacer 'pseudo' par ton pseudo. Après si tu trouves ça embêtant, tu peux mettre ton pseudo dans la première cellule seulement et je m'en accommoderai.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte