Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probabilité

Probabilité sur Ponderation

Sujet résolu
    8 juillet 2019 à 14:39:07

    Bonjour,
    J'analyse des données sur la confrontation entre 2 equipes
    Pour celà, j'ai defini une centaines de critères qualitatif/quantitatif pour predire le resultat final. Chacun de ces critères possedent plusieurs valeurs possibles.
    Une fois la confrontation passée, je capitalise le résultat final(nommé label ci dessous) 1, 0, -1 sur le couple (critère,valeur )
    Exemple:
    critères | valeur | label: 1 | label: 0 | label: -1 | Nb d'evenement total
    c1......  |.....4....|.....20....|......0.....|.....0 .....|.....20
    c2........|...-20...|.....60.....|.....40....|.....40...|.....140
    A ce jour, je me permettais de fournir une fiabilité sur la confrontation à venir. 
    Car en effet cette confrontation possedent bien ces 2 couples (criteres/valeurs) tel que c1 & c2
    Fiabilité fournie:
     - Prevision label 1 = 50% (80/160)
     - Prevision label 0 = 25%
     - Prevision label -1 = 25% 
    MON PROBLEME:
    360 jours plus tard, ces meme criteres/valeurs ont capitalisé des résultats plus ou moin vite, exemple: 
    critères | valeur | label: 1 | label: 0 | label: -1 | Nb d'evenement total
    c1........|...4.....|.....49.....|.....0.....|.....1.....|.....50
    c2........|...-20.....|.....200.....|.....200.....|.....200.....|.....600
    Fiabilité fournie à ce jour serait la suivante: 
     - Prevision label  1 = 38% (249/650)
     - Prevision label  0 = 31%
     - Prevision label -1 = 31% 
    Hors je trouve ce résultat faux
    Mon besoin:
    Je souhaiterais fournir une fiabilité "pondéré" sur le [B]nombre d'évement total du critèr[/B]e & sur [B]sa probabilité[/B]
    je m'explique par 3 exemples concrets
    exemple:
    critères | valeur | label: 1 | label: 0 | label: -1 | Nb d'evenement total
    c1........|...4.....|.....99.....|..... 0.....|.....1......|.....100
    c2........|...-20..|.....1000..|....1000..|.1000.....|.....3000
    c3........|...10...|.....80.....|.....10.....|.....1......|..... 91
    Je cherche un calcul qui me remonte la fiabilité que le résultat (label:1) soit bien plus élevé que 36% (1099/3000).
    Avec mon expérience j'aurais estimé une fiabilité à:
    - Prevision label 1 = 70% 
    - Prevision label 0 = 15%
    - Prevision label -1 = 15%  
    En effet, j'ai 2 critères(c1&c3) qui ont un nombre d'évenement assez grand & une probabilité elevée sur une des 3 labels 
    Alors que le critères c2 n'a pas une probabilité elevée sur une des 3 labels malgré un nombre d'évenement capitalisé très grand.
    exemple:
    critères | valeur | label: 1 | label: 0 | label: -1 | Nb d'evenement total
    c1........|...4.....|..... 9.....|.....1......|..... 0......|.....10
    c2........|...-20..|...1000...|...1000...|...1000....|...3000
    c3........|...10....|..... 5......|..... 0....|..... 0......|..... 5
    Je cherche un calcul qui me remonte la fiabilité que le résultat (label:1) soit égal/legerement plus élevé que 34% (1014/3015).
    Avec mon expérience j'aurais estimé une fiabilité à:
    - Prevision label  1 = 36% 
    - Prevision label  0 = 32%
    - Prevision label -1 = 32%  
    En effet, j'ai 2 critères(c1&c3) qui ont un nombre d'évenement bcp trop faible malgré une probabilité élevée sur une des 3 labels 
    Alors que le critères c2 n'a pas une probabilité elevée sur une des 3 labels malgré un nombre d'évenement capitalisé très grand.
    exemple:
    critères | valeur | label: 1 | label: 0 | label: -1 | Nb d'evenement total
    c1........|...4......|.....109..|..... 1.. ..|..... 0......|..... 110
    c2........|...-20...|...1000..|.....1000.|...1000...|..... 3000
    c3........|...10....|..... 5....|..... 0......|....400....|..... 405
    Je cherche un calcul qui me remonte la fiabilité que le résultat (label:1) soit bien plus élevé que 32% (1114/3515) et que le résultat (label:0) se rapproche de 0%
    Avec mon expérience j'aurais estimé une fiabilité à:
    - Prevision label  1 = 40% 
    - Prevision label  0 = 4%
    - Prevision label -1 = 56%  
    En effet, j'ai 2 critères(c1&c3) qui ont un nombre d'évenement assez grand & une probabilité élevée sur un des 3 labels. 
    Alors que le critères c2 n'a pas une probabilité elevée sur une des 3 labels malgré un nombre d'évenement capitalisé très grand.
    Je travaille sur python, je cherche cette fameuse formule qui me sorte l'équivalant des fiabilité annoncées 
    En effet je cherche sur les forums avec les mots clés suivants "Variable Aléatoire Discrete avec Distribution de probabilité non uniforme".
    Mais je dois faire fausse route.
    Quelqu'un aurait-il une idée pour les mots clés ou la formule utiliser?
    Merci d'avance
    Jerome
    • Partager sur Facebook
    • Partager sur Twitter

    Jérôme Bonneval

      9 juillet 2019 à 15:07:25

      Il faut effectivement pondérer tes critères.

      Les coefficients de pondération peuvent être fixés de manière arbitraire, mais dans ton cas ce serait sans doute bien de les calculer comme une fonction logistique du nombre d'observations.
      C'est-à-dire que chaque critère aurait une pondération de \(\frac{\alpha}{1+e^{-\frac{nb\; d'événements}{\beta}}}\).
      Tu donnes à \(\beta\) une valeur raisonnable en fonction de l'ordre de grandeur à partir duquel un critère te paraît pertinent.
      Tu définis \(\alpha\) pour que la somme des coefficients fasse 1.

      Cette technique te permet de négliger les critères n'ayant pas assez d'événements, et d'évaluer à peu près de la même manière tous les critères qui ont suffisamment d'événements (qu'ils en aient "beaucoup" ou "énormément").

      -
      Edité par Zachee54 9 juillet 2019 à 15:43:50

      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2019 à 9:10:55

        Zachee54 a écrit:

        Il faut effectivement pondérer tes critères.

        Les coefficients de pondération peuvent être fixés de manière arbitraire, mais dans ton cas ce serait sans doute bien de les calculer comme une fonction logistique du nombre d'observations.
        C'est-à-dire que chaque critère aurait une pondération de \(\frac{\alpha}{1+e^{-\frac{nb\; d'événements}{\beta}}}\).
        Tu donnes à \(\beta\) une valeur raisonnable en fonction de l'ordre de grandeur à partir duquel un critère te paraît pertinent.
        Tu définis \(\alpha\) pour que la somme des coefficients fasse 1.

        Cette technique te permet de négliger les critères n'ayant pas assez d'événements, et d'évaluer à peu près de la même manière tous les critères qui ont suffisamment d'événements (qu'ils en aient "beaucoup" ou "énormément").

        -
        Edité par Zachee54 il y a environ 17 heures

        Bonjour Zachee54, 

        Merci pour ton attention :), dans la théorie ca semble coller parfaitement à mon besoin.

        Serais tu m'aider à sa mise en application avec le cas ci dessous remontant les critères correspondant à une confrontation à venir, stp:

        criteres valeur crit. Qté label 1 label 0 label 2
        c1 v1 8 6 1 1
        c2 v2 10 10 0 0
        c3 v3 11 5 3 3
        c4 v4 52 50 1 1
        c5 v5 600 200 200 200

        Concernant (\beta\) = 40

        Comment définis tu (\alpha\)?

        Comment se nomme cette loi/formule que je puisse en apprendre un peu plus sur son utilisation?

        Encore merci pour ton aide

        Jerome

        • Partager sur Facebook
        • Partager sur Twitter

        Jérôme Bonneval

          10 juillet 2019 à 10:20:40

          J'ai appris la transformation logistique dans ce cours.

          JeromeBonneval a écrit:

          Comment définis tu \(\alpha\)?

          Dans un calcul pondéré, un coefficient multiplicateur appliqué à tous les coefficients individuels n'a aucune importance. Mais il faut que la somme des coefficients soit égale à 1, ou que tu divises le résultat final par la somme de coefficients. \(\alpha\) sert seulement à ça.

          En revanche il faut que tu fasses des essais sur \(\beta\) pour voir ce qui s'approche le plus de ce que tu souhaites.

          Dire "Avec mon expérience, j'aurais estimé une fiabilité à..." n'est pas une explication assez précise pour qu'on puisse te guider davantage dans ce que tu souhaites. Je ne sais pas de quoi parle ton problème, comment tu as construit tes critères, qu'est-ce que tu essayes d'évaluer et dans quel but...

          Je t'ai donné un premier outil, à toi de l'essayer ou de préciser la suite de ta demande.

          -
          Edité par Zachee54 10 juillet 2019 à 10:21:00

          • Partager sur Facebook
          • Partager sur Twitter
            10 juillet 2019 à 15:40:44

            Zachee54 a écrit:

            J'ai appris la transformation logistique dans ce cours.

            => ok merci pour l'info, je vais regarder celà de plus prêt

            Zachee54 a écrit:

            Dans un calcul pondéré, un coefficient multiplicateur appliqué à tous les coefficients individuels n'a aucune importance. Mais il faut que la somme des coefficients soit égale à 1, ou que tu divises le résultat final par la somme de coefficients. \(\alpha\) sert seulement à ça.

            => Je comprend un peu mieux alpha mais j'ai du mal à voir comment le calculé (avec python)

            Zachee54 a écrit:

            En revanche il faut que tu fasses des essais sur \(\beta\) pour voir ce qui s'approche le plus de ce que tu souhaites.

            => Pas de soucis, des essais seront fait 

            Zachee54 a écrit:


            Dire "Avec mon expérience, j'aurais estimé une fiabilité à..." n'est pas une explication assez précise pour qu'on puisse te guider davantage dans ce que tu souhaites. Je ne sais pas de quoi parle ton problème, comment tu as construit tes critères, qu'est-ce que tu essayes d'évaluer et dans quel but...

            Je t'ai donné un premier outil, à toi de l'essayer ou de préciser la suite de ta demande.

            => j'aimerai bien l'essayer mais je n'arrive pas à passer de la théorie à la pratique dans python. Du coup si tu veux continuer à m'aider, voici les précisions:

            mon probleme: le sujet concerne la prediction de match.

            Tout a commencé, il y a 10ans, j'ai craqué en écoutant les journalistes à la radio.

            En effet, ils donnaient leur pronostique avant le match basé sur un/des critère(s) avec chacun leur propre valeur (exemple: critère: But Pour ; valeur: 6). Le lendemain - bilan, le pronostique était faux et ils mettaient en avant un autre critère/valeur allant dans le sens du resultat final. 

            Du coup, j'ai listé de facon exhaustif tous les critères possibles influencant le résultat d'un match et pour lesquels je pouvais récupérer des données. Le lendemain, je capitalise sur le critère/valeur correspondant au match en ajoutant +1 dans le label 1 ou 0 ou -1.

            C'est là qu'on arrive à mon problème cité ici, c'est que j'ai des critères/valeur qui se capitalise de facon plus fréquente que d'autres. Exemple ci dessous pour un match, j'ai 5 critères/valeur qui matchs avec la rencontre à venir.

            Si je lis la première ligne du tableau, elle se comprend de la sorte:

            le couple c1/v1 a déjà été vu sur 8 matchs précédants avec pour resultat : 6 fois label 1 // 1 fois label 0 

            // 1 fois label -1 

            criteres valeur crit. Qté label 1 label 0 label 2
            c1 v1 8 6 1 1
            c2 v2 10 10 0 0
            c3 v3 11 5 3 3
            c4 v4 52 50 1 1
            c5 v5 600 200 200 200

            Ajd, la fiabilité que je donne sur le match est la suivante: label 1: 38%(271/681)  label 0: 31%  label -1: 31%

            Probleme: la derniere ligne - c5v5 - a un nombre d'historique bcp trop grand qui influence les 4 autres critères qui semblent tous aller dans le meme sens (prediction label 1).

            To Be 1: J'aimerai trouvé une formule qui me pondère la quantité de match. J'estime que la quantité de 40 matchs de capitalisés est raisonnable pour juger de la pertinance de critere/valeur

            To Be 2: Ensuite, J'aimerai aussi une ponderation qui diminue la quantité de match quand la prevision est proche de 33% sur les 3 labels

            J'attend que la formule tende vers le résultat suivant label 1: 60%  label 0: 15%  label -1: 15%

            A ce jour je réalise le calcul suivant pour répondre à mes 2 besoins: 

            To Be 1:Si la qté d'un critère/valeur est supérieur > 40, alors je ramene la qté du critère/valeur à 40 et je fais de meme pour ses labels en appliquant le prorata à chacun.

            criteres valeur crit. Qté label 1 label 0 label -1
            c1 v1 8 6 1 1
            c2 v2 10 10 0 0
            c3 v3 11 5 3 3
            c4 v4 40 39 0.5 0.5
            c5 v5 40 13.33 13.33 13.33

            To Be2: je bascule en pourcentage les labels et je calcule l'écart type du pourcentage des criteres/valeur pour chacun. Lorsque l'ecart type est proche de 0, j'en déduis que le criteres valeur n'a pas d'influence sur le résultat. Pour un ecart type environ de 22% alors il peut être interessant pour un ecart type > 25 alors le critère valeur est interessant.

            criteres valeur crit. Qté label 1 label 0 label -1 Ecart type
            c1 v1 8 75 12,5 12,5 36,08
            c2 v2 10 100 0 0 57,74
            c3 v3 11 45 27,5 27,5 10,10
            c4 v4 40 98 1 1 56,00
            c5 v5 40 33 33 33 0,00

            Du coup j'applique un coefficient qui va me baisser ou augmenter la quantité sur chacun des labels et la colonne Qté, coef defini par:

            label1=label1*(1+(ecartype-22))

            label0=label0*(1+(ecartype-22) )

            idem label-1 et qté

            criteres valeur crit. Qté label 1 label 0 label -1
            c1 v1 9,2 6,9 1,15 1,15
            c2 v2 13,5 13,5 0 0
            c3 v3 9,68 4,4 2,64 2,64
            c4 v4 69.68 67 1,34 1,34
            c5 v5 75 25 25 25

            La fiabilité serait la suivante: label 1: 66%(116/177)  label 0: 17%  label -1: 17%

            Qu'en penses tu? Serais tu m'aiguiller pour appliquer ta formule à mon exemple?

            merci Jeroem

            • Partager sur Facebook
            • Partager sur Twitter

            Jérôme Bonneval

              10 juillet 2019 à 17:10:16

              Je m'aperçois que je t'ai dit une bêtise parce que la fonction logistique prend des arguments de \(-\infty\) à \(+\infty\), alors que le nombre d'événements est dans \(\mathbb N\).
              Il faudrait trouver une autre fonction qui va de \(\mathbb R^+ \longrightarrow \left[0,1\right]\) avec une dérivée nulle en 0 pour "écraser" les échantillons plus faibles, mais je n'ai pas ça directement sous la main.

              Je trouve surtout que ce tu fais est assez compliqué, très artisanal, et que puisque tu as un diplôme de data analyst ça ne te coûterait pas grand chose de t'initier aux fonctions de data scientist. C'est fait pour ça !

              -
              Edité par Zachee54 10 juillet 2019 à 17:11:12

              • Partager sur Facebook
              • Partager sur Twitter
                11 juillet 2019 à 7:44:51

                Zachee54 a écrit:

                Je m'aperçois que je t'ai dit une bêtise parce que la fonction logistique prend des arguments de \(-\infty\) à \(+\infty\), alors que le nombre d'événements est dans \(\mathbb N\).
                Il faudrait trouver une autre fonction qui va de \(\mathbb R^+ \longrightarrow \left[0,1\right]\) avec une dérivée nulle en 0 pour "écraser" les échantillons plus faibles, mais je n'ai pas ça directement sous la main.

                Je trouve surtout que ce tu fais est assez compliqué, très artisanal, et que puisque tu as un diplôme de data analyst ça ne te coûterait pas grand chose de t'initier aux fonctions de data scientist. C'est fait pour ça !

                -
                Edité par Zachee54 il y a environ 14 heures


                Merci pour ton retour,

                J'ai malheureusement pas de diplome de Data Analyst mais je m'y forme au quotidien via Open Classroom

                Après celà je passerai au cours de Data Scientist

                Pour info, Joseph Buchdahl n'a pas su me donner de solution à ma question.

                Je me dis que même si je n'arrive pas à battre les bookmakers j'aurais toujours appris des choses entre temps.

                Encore merci pour ton retour et si tu trouves qqc d'intéressant je reste preneur :)

                Apres différent tests sur un jeu de donnée conséquant ma formule semble pas trop mal "adaptée" à ma problématique.

                On refera le point l'année prochaine :)

                merci

                Jerome

                • Partager sur Facebook
                • Partager sur Twitter

                Jérôme Bonneval

                  11 juillet 2019 à 9:56:39

                  Pour pondérer tes critères en fonction du nombre d'observations, tu peux en effet ne conserver que les critères ayant un effectif supérieur à 40, et les retenir tous de la manière avantager certains.
                  Pour retenir l'idée de la fonction logistique, on peut améliorer un peut ça en inventant une formule comme \[\frac{1}{1+\lambda e^{\frac{1}{n}-n-\beta}}\] où \(n\) est le nombre d'observations et \(\lambda\) est un coefficient qui permet d'ajuster la progressivité de la fonction. S'il tend vers 0, tous les coefficients sont identiques. S'il tend vers \(+\infty\), ça équivaut à ta méthode qui élimine les critères ayant moins de 40 observations et qui compte tous les autres pareils.
                  Pour commencer, choisis \(\lambda = 1\) et tu verras bien si ça te convient.
                  \(\beta\) est défini par \(\beta = \frac{1}{N}-N-ln(\lambda)\), où \(N\) est le seuil à partir duquel tu estimes que les critères sont pertinents, c'est-à-dire 40.

                  Par contre je ne vois pas du tout l'intérêt de ton "To Be 2", qui consiste à éliminer les critères qui ont un faible écart-type.
                  D'abord ce n'est pas un écart-type entre plusieurs observations ; c'est l'écart-type entre les probabilités de tes trois événements complémentaires 1, 0 ou -1. Ce n'est pas un écart-type au sens qu'on lui donne habituellement.
                  Ensuite, je ne vois pas pourquoi ces critères apporteraient moins d'information que les autres. Ils disent que l'issue est relativement incertaine, ce qui est une information importante.

                  Pour finir, je suis bien d'accord avec toi sur le fait que ça t'aura au moins permis d'apprendre quelque chose. Mais ne te fais pas d'illusion : les paris sportifs (et les jeux d'argent en général) sont une question de professionnels et si on pouvait forcer la chance à coup sûr, ça se saurait.
                  Je ne sais pas si tu peux en tirer quelque chose, mais si c'est ta passion tu commenceras vraiment à avoir le sentiment de faire quelque chose d'intéressant quand tu utiliseras les outils de data scientists.

                  -
                  Edité par Zachee54 11 juillet 2019 à 9:58:44

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juillet 2019 à 13:55:23

                    Zachee54 a écrit:

                    Pour pondérer tes critères en fonction du nombre d'observations, tu peux en effet ne conserver que les critères ayant un effectif supérieur à 40, et les retenir tous de la manière avantager certains.
                    Pour retenir l'idée de la fonction logistique, on peut améliorer un peut ça en inventant une formule comme \[\frac{1}{1+\lambda e^{\frac{1}{n}-n-\beta}}\] où \(n\) est le nombre d'observations et \(\lambda\) est un coefficient qui permet d'ajuster la progressivité de la fonction. S'il tend vers 0, tous les coefficients sont identiques. S'il tend vers \(+\infty\), ça équivaut à ta méthode qui élimine les critères ayant moins de 40 observations et qui compte tous les autres pareils.
                    Pour commencer, choisis \(\lambda = 1\) et tu verras bien si ça te convient.
                    \(\beta\) est défini par \(\beta = \frac{1}{N}-N-ln(\lambda)\), où \(N\) est le seuil à partir duquel tu estimes que les critères sont pertinents, c'est-à-dire 40.

                    Par contre je ne vois pas du tout l'intérêt de ton "To Be 2", qui consiste à éliminer les critères qui ont un faible écart-type.
                    D'abord ce n'est pas un écart-type entre plusieurs observations ; c'est l'écart-type entre les probabilités de tes trois événements complémentaires 1, 0 ou -1. Ce n'est pas un écart-type au sens qu'on lui donne habituellement.
                    Ensuite, je ne vois pas pourquoi ces critères apporteraient moins d'information que les autres. Ils disent que l'issue est relativement incertaine, ce qui est une information importante.

                    Pour finir, je suis bien d'accord avec toi sur le fait que ça t'aura au moins permis d'apprendre quelque chose. Mais ne te fais pas d'illusion : les paris sportifs (et les jeux d'argent en général) sont une question de professionnels et si on pouvait forcer la chance à coup sûr, ça se saurait.
                    Je ne sais pas si tu peux en tirer quelque chose, mais si c'est ta passion tu commenceras vraiment à avoir le sentiment de faire quelque chose d'intéressant quand tu utiliseras les outils de data scientists.

                    -
                    Edité par Zachee54 hier à 9:58


                    Merci pour ta formule :)

                    Concernant "To Be 2": je n'ai pas encore fait le ménage sur toutes mes variables.

                    En effet certaines de mes variables n'ont aucune valeur ajoutée pour la prevision du résultat d'un match. il me faudra les supprimer après avoir calculé la regression linéaire/correlation de chacune. Du coup, en attendant de faire le ménage dans les variables je me permets de donner un peu plus/moins de poids aux variables fonction de l'ecart type.

                    Concernant les paris sportif, j'ai les pieds sur terre je te rassure :). mon objectif n'est pas de gagner à coup sur mais une fois suffira :)

                    Vivement l'utilisation des outils du data scientist

                    Bon we

                    Jerome

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Jérôme Bonneval

                    Probabilité

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown