Algorithmes classement / rating / rank

Algorithmes classement / rating / rank - Divers - Programmation

Marsh Posté le 22-07-2011 à 10:00:10    

Bonjour,

 

Je cherche à déterminer la faisabilité d'un petit projet que j'ai en tête. C'est essentiellement basé sur un système de vote, classement, rang, je sais qu'il y a quelques experts (bordelais ?) qui traînent dans le coin :D

 

Vous avez des billes sur le sujet ? Idéalement, plus du style "How Stack Overflow is rating answers?" qu'un papier de thèse, mais je prendrais ce qui vient.

 

L'idée de base, on retrouve les concepts d'Item (à noter) de Catégories (un item appartient à une catégorie) et de Critères (un Item est noté en fonction de N Critères).

 

Les personnes qui notent peuvent se déclarer "expertes" dans un certain nombre de domaines, qui peuvent recouper à la fois une catégorie et un critère. Fatalement, l'avis d'un "expert" doit avoir plus de poids sur le vote, et de même, un expert auto-proclamé n'aura pas le même poids qu'un expert reconnu (et donc notion de réputation, là aussi j'ai besoins de billes).

 

Que des sujets classiques, il doit donc bien y avoir une entrée de blog de 20 lignes qui me dit comment monter ça de A à Z, non  [:opus dei]

 

Edit : la réputation d'un notant pourrait (devrait) être granulaire à une catégorie / un critère, augmentant encore la complexité de la chose.


Message édité par LeRiton le 22-07-2011 à 10:45:00
Reply

Marsh Posté le 22-07-2011 à 10:00:10   

Reply

Marsh Posté le 22-07-2011 à 11:16:09    

Ben modélisation de ta bd (MCD en Merise, par ex), définition des user-cases (en UML par ex), choix des technos (a priori, PHP, XHTML, CSS, Javascript/ajax, et Mysql), codage de l'appli (en s'aidant de libs en GPL ou framework) + définition des algos, puis tests et enfin, mise en prod. Rien de bein compliquer comme démarche ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-07-2011 à 11:23:34    

je crois que tu n'as pas compris la question


---------------

Reply

Marsh Posté le 22-07-2011 à 11:23:46    

En fait, je cherche des données sur les algorithmes de notation / classement, pas une méthode pour la réalisation du site :D
Merci quand même !
Edit : burned, mais oui.


Message édité par LeRiton le 22-07-2011 à 11:24:06
Reply

Marsh Posté le 22-07-2011 à 11:50:17    

T'as déjà pas mal décrit le fonctionnement de l'algorithme que tu souhaites, je trouve, t'as plus qu'à le modéliser dans une base + définir les qq uses-cases qui vont faire évoluer les notations/réputations de chacun...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-07-2011 à 11:55:54    

À mon avis le concept mathématique que tu cherches c'est une moyenne bayésienne.
 
http://leedumond.com/blog/the-wisd [...] algorithm/


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 22-07-2011 à 12:00:02    

Xavier_OM a écrit :

À mon avis le concept mathématique que tu cherches c'est une moyenne bayésienne.
 
http://leedumond.com/blog/the-wisd [...] algorithm/


 
Perso,, je pensais à une chaîne de markov : http://fr.wikipedia.org/wiki/Chaîne_de_Markov (cf l'algo du pageRank de google)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-07-2011 à 12:11:54    

rufo a écrit :


 
Perso,, je pensais à une chaîne de markov : http://fr.wikipedia.org/wiki/Chaîne_de_Markov (cf l'algo du pageRank de google)


 
Ben je pense que tu peux utiliser des chaînes de markov si -- dans ta moyenne bayésienne -- tu veux "estimer" les poids et les moyennes (variances ?) à partir des données collectées. Le genre de peaufinage à garder pour la fin si la version de base ne te satisfait pas.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 22-07-2011 à 12:45:01    

rufo a écrit :

T'as déjà pas mal décrit le fonctionnement de l'algorithme que tu souhaites, je trouve, t'as plus qu'à le modéliser dans une base + définir les qq uses-cases qui vont faire évoluer les notations/réputations de chacun...

 

C'est loin d'être si simple, du moins, si je voulais le faire simplement, ça serait loin d'être juste !

 
Xavier_OM a écrit :

À mon avis le concept mathématique que tu cherches c'est une moyenne bayésienne.

 

http://leedumond.com/blog/the-wisd [...] algorithm/

 

Si je ne me trompe pas, ça s'appliquerait plus si je voulais classer des items entre eux (que la position / note d'un item avait une incidence sur l'autre). C'est là que ma question n'est-peut être pas très claire, mais la note obtenue par un item est indépendante de celle des autres, une valeur absolue si tu préfère. Du coup, la difficulté de l'algo est dans la pondération des votes, et même si ça pouvait être fait naïvement (genre un expert compte double, mais reste à "reconnaître" un expert autrement que par son auto déclaration), ça serait certainement pas représentatif d'une réalité en fonction des compétences et réputations de chacun.

 
rufo a écrit :

 

Perso,, je pensais à une chaîne de markov : http://fr.wikipedia.org/wiki/Chaîne_de_Markov (cf l'algo du pageRank de google)

 

Même remarque que celle de Xavier_OM, je comprends pas bien l'intérêt pour mon cas. La propagation ? Tu penses à quelque chose en particulier ?


Message édité par LeRiton le 22-07-2011 à 12:45:50
Reply

Marsh Posté le 22-07-2011 à 12:55:39    

Les relations entre les personnes sont liées, inter-dépendantes. L'opinion (réputation) des autres sur une personne est influencée elle-même par l'opinion qu'ont entre eux les membres du groupe.  
Ex : la réputation d'une personne sera perçue par les autres plus juste si elle est donnée par un bon nb d'experts, eux-mêmes reconnus comme tels que si c'est par un groupe de débutants. Mais chaque expert a acquis ce statut par les autres, etc.
 
C'est pour ça que le pageRank me paraît pas mal pour ton cas. Après, ce pagerank peut être localisé à un sous-espace (une catégorie, par ex), ce qui impliquerait qu'un utilisateur possèderait autant de pagerank que de catégories.
 
D'avoir la propagation permet aussi de remettre automatiquement à jour certaines notations d'items anciens.  
Ex : sur le site lesnumériques.com, les produits sont notés de 1 à 5 étoiles mais jusqu'à il y a peu, les notes n'étaient pas réévaluées. Du coup, un produit 5 étoiles d'il y a 2-3 ans n'a rien à voir avec un 5 étoiles d'aujourd'hui; il faut donc dégrader la note de l'ancien.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-07-2011 à 12:55:39   

Reply

Marsh Posté le 22-07-2011 à 13:04:36    

Pas d'évolution sur les items. Je note la remarque pour les notant.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed