Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul de Popularité

Matheux demandés

Sujet résolu
    10 septembre 2011 à 16:55:31

    Bonjour à tous !

    Je suis en train de concevoir un nouveau site internet, et je viens demander l'avis de personnes éclairées au sujet de la meilleure façon de faire plusieurs calculs (algorithmes ?).
    Si je vous fait cette demande c'est que les Maths ne sont pas vraiment mon fort, et que j'espère tomber sur des personnes ayant déjà eu un cas similaire.
    De même je mets ça dans la partie SQL, peut être que certains auront également des exemples de requêtes performantes.

    Popularité d'une Photo


    Admettons que je créé une photo à une date x.
    Cette photo reçoit y nombre de visites.
    Cette photo est favorisée f fois.
    Ces mêmes favoris sont ajoutés à un moment ft.
    Cette photo reçoit z nombre de commentaires
    Ces mêmes commentaires sont créé à un moment zt.

    Pour résumer :
    • x = date photo
    • y = nombre visites photo
    • f = nombre de fois qu'elle a été ajoutée aux favoris
    • ft = date favoris
    • z = nombre commentaires
    • zt = date commentaire



    A partir de là, il faudrait que je récupère un pourcentage ou une valeur me permettant de savoir quelle photo est la plus populaire pendant le mois en cours (bon ça c'est un détail).
    Sachant que je voudrais donner plus d'importance aux photos :
    • 1° - Qui ont été créées récemment.
    • 2° - Qui ont un plus grand nombre de commentaires durant les derniers jours ou les dernières heures.
    • 3° - Qui ont le plus grand nombre de commentaires sur le mois.
    • 4° - Qui ont été favorisées plus de fois durant les derniers jours ou les dernières heures.
    • 5° - Qui ont le plus grand nombre de favoris sur le mois.

    J'insiste bien sur cet ordre de priorité, une photo ancienne qui a eu un grand nombre de visite qu'une photo récente aura moins d'importance.
    Tout dépendant bien sûr de la pondération (1000 visites sur une photo ancienne reste plus important que 0 sur une photo neuve).


    Tableau de valeurs


    Je vous fournis un exemple de valeurs si besoin (ma table n'est pas créée comme ça hein c'est juste pour faciliter la tâche ^^). Vous pouvez bien sûr en imaginer d'autres, je n'ai pas représenté tous les cas de figures.
    Et je pars du principe qu'il y aura plus de créations de favoris que de commentaires, vu les nombres que j'indique je n'ai pas mis leur date d'ajout, mais elle sera bien nécessaire.

    #Photo Date Photo Visites Favorisée #Commentaire Date Comm'
    1 2011-09-01 08:00:00 205 53 - -
    - - - - - -
    2 2011-09-05 18:26:40 8 8 1 2011-09-05 18:57:49
    - - - - 2 2011-09-08 19:34:49
    - - - - 3 2011-09-08 19:34:40
    - - - - - -
    3 2011-09-08 19:34:43 162 21 1 2011-09-08 19:34:50
    - - - - 2 2011-09-08 19:34:51
    - - - - 3 2011-09-08 19:34:53
    - - - - 4 2011-09-08 19:35:05
    - - - - 5 2011-09-08 19:35:14
    - - - - 6 2011-09-08 19:38:47
    - - - - 7 2011-09-08 19:39:00
    - - - - 8 2011-09-09 23:51:57
    - - - - - -
    4 2011-09-10 11:40:37 0 0 - -



    Bon j'ai un autre calcul un peu plus complexe à faire, mais je ne vais peut être pas en mettre trop d'un coup, et j'essaierais de le faire par moi-même une fois que j'aurais celui-ci.

    Merci d'avance !


    [EDIT]
    Rajout du nombre de favoris f, ces favoris étant ajoutés à une date ft également
    [/EDIT]
    • Partager sur Facebook
    • Partager sur Twitter
      11 septembre 2011 à 13:23:09

      Ceci, c'est de l'aide multicritère à la décision

      Par contre, je te suggède plutôt d'aller sur le forum "math"... Parce que c'est anecdotique que tu aies une base de données...
      • Partager sur Facebook
      • Partager sur Twitter
        11 septembre 2011 à 14:21:46

        Salut !
        Effectivement tu devrais trouver plus de réponse sur le forum Maths, je ne peux pas déplacer un sujet Info <-> Sciences donc rouvres un sujet côté Sciences.

        Merci :)
        • Partager sur Facebook
        • Partager sur Twitter
          12 septembre 2011 à 15:45:03

          Je ne pense pas qu'il faille beaucoup de mathématique pour les 5 choses que Derzone demande.

          1. Couper la table en 2 avec une table photo et une table commentaires
          2. Utiliser des fonctions d'agrégats dans les requêtes et ordonner.
          • Partager sur Facebook
          • Partager sur Twitter
            12 septembre 2011 à 21:26:14

            Tu n'as pas compris ce qu'il veut je crois...

            Il veut les ordonner selon une combinaison de ces 5 critères, pas faire chacun de ces critères 1 par 1 ;)
            • Partager sur Facebook
            • Partager sur Twitter
              13 septembre 2011 à 3:03:18

              Merci pour vos réponses, je viens d'ouvrir un nouveau topic ici :
              http://sciences.siteduzero.com/forum-8 [...] pularite.html

              PS : en effet la base de données n'a pas beaucoup d'importance vu qu'elle est déjà créée de manière adéquate. J'espérais quand même tomber sur quelqu'un ayant eu affaire à un cas similaire ^^
              • Partager sur Facebook
              • Partager sur Twitter
                13 septembre 2011 à 19:21:58

                Bon, pour bien commencer il faudrait peut-être dans un premier temps mieux organiser le gros bloc qui contient tout les données par quelque chose qui ressemble plus à ceci :

                classement sur critère


                Ensuite pour créer ton classement tu n'as besoin que d'une chose :
                La bonne formule mathématique.

                Pour voir à quoi peut ressembler cette formule, je peux te donner l'exemple du top 250 du site d'IMDB qui classe ses films selons certains critères :

                Citation : IMDB

                The formula for calculating the Top Rated 250 Titles gives a true Bayesian estimate:
                WR = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C

                where:
                WR = Weighted Rating
                R = average for the movie (mean) = (Rating)
                v = number of votes for the movie = (votes)
                m = minimum votes required to be listed in the Top 250 (currently 3000)
                C = the mean vote across the whole report (currently 6.9)

                For the Top 250, only votes from regular voters are considered.

                • Partager sur Facebook
                • Partager sur Twitter
                  14 septembre 2011 à 17:05:05

                  Citation : guk92

                  Bon, pour bien commencer il faudrait peut-être dans un premier temps mieux organiser le gros bloc qui contient tout les données par quelque chose qui ressemble plus à ceci



                  Hmmm comme je l'ai dit dans mon premier post, j'ai déjà une base de données construite de manière adéquate (avec 4 tables différentes et des jointures).
                  Le tableau fourni n'étant construit de cette manière que pour une facilité d'utilisation des données sur le SdZ (je ne voulais pas étaler 4 tableaux sur la page).

                  Mais merci pour la formule, je vais regarder ça de plus près.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Calcul de Popularité

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown