2010-10-21 157 views
3

我試圖將此自適應貝葉斯評分公式轉換爲PHP代碼:請參閱此處將公式轉換爲PHP

以下是式中的各個部分的細節..

  • nvotes:票到目前爲止
  • nlinks的總數:鏈接總數
  • nvotes(K):數投票給第三方的鏈接。
  • deltarank(k,m):由第k個投票引起的等級增量,該等級被遞增到第m個鏈接。
  • nsaves(i):將第i個鏈接保存到其linkibol的用戶數量。
  • a:保存指數(特設值接近1)
  • 年齡(i):添加日期鏈接和當前日期之間的差異(以天爲單位)。
  • B:衰變指數(一個特設值接近於0)

(公式的全部細節可以在http://blog.linkibol.com/2010/05/07/how-to-build-a-popularity-algorithm-you-can-be-proud-of/找到 - 向下滾動到「我們如何實現linkibol流行?」部分)

我可以很容易地將這個函數的大部分轉換成PHP代碼,但我不理解的是sigma和deltarank位。我不確定那個位應該做什麼或者傳遞給k和m的值是什麼。

如果任何人有任何提示或可以打破複雜的公式,那麼我可以看看什麼是最好的方式來實現它在PHP中 - 可能有我可以使用的函數等等。

+0

你可以獲得算法代碼,我希望看到它的樣子。 – Bot 2010-10-21 21:10:42

回答

1

他們將delta排名定義爲當第k個投票在第m個鏈接上投入時的排名變化......看起來這是任意的,因爲他們的排名變化是基於用戶投票的業力投票。

至於sigma,它只是(k = 1)到(k = whatever)內容的總和,所以你可以用循環來實現它。

+0

我明白它是基於業力的,我只是不確定參數k和m代表什麼(第k個投票和第m個鏈接)。 sigma位是否受Deltarank位影響?我知道西格瑪不一定每次增加1個整數,所以我想知道它是否受deltarank返回的值影響。 – RichW 2010-10-21 20:56:48

+1

k和m是循環中的當前索引 - 如果您查看初始值對於sigma,一個以k = 1開始,另一個以m = 1開始。是的,像這樣的sigma一次增加1個整數。 – 2010-10-21 21:07:02

1

西格馬部分是求和。使用提供的值作爲循環計數器。 (所以k = 1到10,在使用k的函數中使用這些值)。

Delta只是一個區別,但是這個特定的函數當然有更精確的定義。

+0

我想循環計數器的另一種選擇是array_sum() - 我認爲這會有相同的效果。關於三角函數的有趣想法 - 你認爲背後有更多的計算,只是不顯示該公式?我仍然試圖找出deltarank代表什麼。 – RichW 2010-10-21 20:53:02