Bonjour,
Tout d’abord je n’arrivais pas à trouver une manière d’écrire un titre plus précis ; aussi si en lisant cet OP vous avez une idée, je suis preneur .
Structure des données dont je dispose
Il s’agit d’un système de votes. J’ai donc :
-
Des "trucs" à voter.
-
Par "Truc", il y a trois critères avec chacun les valeurs sélectionnables suivantes (une seule l’est) : "Très", "Beaucoup", "Un peu", "Pas du tout". Trois critères pourraient quant à eux être : "Créatif", "Bien fignolé", "Engageant".
Un votant qui vote tout le temps vite doit peser moins qu’un votant qui vote "normalement" bien entendu (notion d’indice de confiance va-t-on dire).
Sortie désirée
Imaginons tout un corpus de votes concernant des Trucs.
Alors, la sortie désirée de mon programme pour chaque "Truc" est la suivante (je vous la définis par l’exemple) :
-
<1 Truc donné>
-
Créatif
- Le plus probable que
<Ce truc>
soit Créatif est : "Très", - Autres probables : "Beaucoup",
- Peu probables : "Un peu", "Pas du tout"
- Le plus probable que
-
Bien fignolé
- Le plus probable que
<Ce truc>
soit Bien Fignolé est : "Beaucoup" ET AUSSI "Un peu", - Autres probables : -
- Peu probables : "Très", "Pas du tout"
- Le plus probable que
-
etc. (quelque chose de similaire, pour le critère "Engageant").
-
Question
Comment arriver à cette sortie ?
Au début je pensais calculer de manière pondérée (i.e. : en fonction de l’indice de confiance) un score pour l’ensemble des couples (1 Truc ; 1 Critère) en fonction des Votes pour chaque valeur de ce critère. Puis je me suis rendu compte que ça ne donnerait qu’un score, qui pourrait se situer sur une échelle à valeurs discrètes allant de "100% Pas du tout à 100% Très", en passant par des mix tels "25% Pas du tout, 25% Un peu, 25% …". Et encore, le fait de n’avoir qu’un score (i.e. : un nombre) ne transcrirait même pas bien cette notion.
J’ai aussi pensé clusteriser les votes par valeur, pour chaque couple (1 Truc ; 1 Critère), ainsi qu’à utiliser des notions comme les quartiles, et ma réflexion est toujours en cours (je n’ai pas eu le temps de m’y pencher plus de 5min). Est-ce que je suis sur la bonne voie ?
Ou bien, y a-t-il un moyen beaucoup plus simple auquel je n’aurais pas pensé d’arriver à mes fins ? (Je n’ai pas du tout l’habitude de faire des statistiques ni de travailler sur ce genre de problématiques).
Existe-t-il des implémentations PHP (idéalement des packages Laravel, mais si c’est du PHP c’est très bien), voire Python (car PHP peut exécuter du Python) qui pourraient m’offrir directement ce service (gratuitement) ? (utilisables dans un contexte professionnel car je compte faire de ce projet personnel un projet rémunérateur)
Merci beaucoup !
Très bonne semaine à tous !