2010-10-21 10 views
3

J'essaie de convertir cette formule d'évaluation bayésienne adaptative en code PHP: voir ici.Conversion d'une formule en PHP

Voici les détails des différentes parties de la formule ..

  • nvotes: nombre total de votes à ce jour
  • nlinks: nombre total de liens
  • nvotes (k): nombre de votes exprimés au cinquième lien. Deltarank (k, m): incrément de rang causé par kth vote qui est casté à mth link. Nsaves (i): nombre d'utilisateurs qui sauvegardent le lien vers leur linkibol.
  • a: sauvegarder l'exposant (une valeur ad-hoc proche de 1)
  • age (i): la différence (en jours) entre le lien de date ajouté et la date actuelle.
  • b: exposant de décroissance (une valeur ad hoc proche de 0)

(détails de la formule se trouvent à http://blog.linkibol.com/2010/05/07/how-to-build-a-popularity-algorithm-you-can-be-proud-of/ - faites défiler jusqu'à la section « Comment pouvons-nous mettre en œuvre Popularité en linkibol? »

Je peux convertir la plupart de cette fonction en code PHP facilement, mais le bit que je ne comprends pas est le bit sigma et deltarank. Je ne suis pas sûr de ce que ce bit est supposé faire ou des valeurs à transmettre à k et m. Si quelqu'un a des conseils ou pourrait casser le peu complexe de la formule qui serait génial, alors je peux regarder quelle serait la meilleure façon de l'implémenter en PHP - il pourrait y avoir des fonctions que je pourrais utiliser

+0

Si vous obtenez le code de l'algorithme, je serais intéressé de voir à quoi il ressemble. – Bot

Répondre

1

Ils définissent le rang delta comme le changement de rang lorsque le kième vote est lancé sur le mième lien ... il semble que ce soit arbitraire, puisque leur changement de rang est basé sur le karma des utilisateurs le vote. En ce qui concerne le sigma, il s'agit simplement de la somme du contenu de (k = 1) à (k = quelquechose), donc vous allez l'implémenter avec une boucle.

+0

Je comprends que c'est basé sur le karma, je ne suis pas sûr de ce que représentent les paramètres k et m (kth vote et mth link). Le bit sigma est-il affecté par le bit deltarank? Je sais que sigma ne doit pas incrémenter 1 entier à la fois, donc je me demande si elle est affectée par la valeur retournée par deltarank .. – RichW

+1

k et m sont l'index actuel dans les boucles - si vous regardez les valeurs initiales pour les sigmas, on commence par k = 1 et l'autre commence par m = 1. Et oui, un sigma comme celui-ci incrémente 1 entier à la fois. –

1

La partie sigma est la somme. Utilisez les valeurs fournies comme compteur de boucle. (donc k = 1 à 10, utilisez ces valeurs dans les fonctions qui prennent k). Delta est simplement une différence, mais cette fonction particulière a certainement une définition plus précise.

+0

Je suppose qu'une alternative au compteur de boucle serait array_sum() - je pense que cela aurait le même effet. Pensées intéressantes sur la fonction delta - pensez-vous qu'il y a plus de calculs derrière qui ne sont pas affichés sur cette formule? J'essaie toujours de comprendre ce que le deltarank représente .. – RichW