1. 程式人生 > >威爾遜區間

威爾遜區間

由於工作原因要使用威爾遜區間來計算POI與TD之間的分數,現在總結一下。
對於召回的一些資料如何給這些資料來排名,然後根據這個排名來顯示資料,這就需要使用“威爾遜區間”了。

首先我們討論的情況是每個專案只有兩種選擇,且專案之間是相互獨立的,就是專案符合“二項分佈”的。

[1]中所舉的例子中可以看出,無論得分情況為

得分 = 贊成票 - 反對票

還是

得分 = 贊成票 / 全部票

都會出現錯誤的情況。

有一種計算得分的策略是,通過某事件發生的概率的最低置信區間來對專案進行排序。

所謂”置信區間”,就是說,以某個概率而言,p會落在的那個區間。比如,某個產品的好評率是80%,但是這個值不一定可信。根據統計學,我們只能說,有95%的把握可以斷定,好評率在75%到85%之間,即置信區間是[75%, 85%]。

而“威爾遜區間”就是為了計算這個“置信區間”的。二項分佈的置信區間有多種計算公式,最常見的是”正態區間”(Normal approximation interval),但是這種演算法對於小樣本的情況下準確度是很低的。

威爾遜區間的計算公式如下:

p ¯ + z 2 2 n
1 + z 2 n ± z 1 + z 2 n p ¯ ( 1 p ¯ ) n + z 2 4 n 2

其中, p ¯ 表示的是一件事發生的概率,n表示發生的總次數,z表示置信水平,一般取0.95。

這樣通過計算每個專案的“威爾遜區間”就能得到最終的排名。
比如知乎就是用這種策略來計算每條回答得分,最後按分數來排名的。

此時威爾遜區間也能化簡為如下格式:

S c o r e = ( p + z 2 2 n z 2 n 4 n ( 1 p ) p + z 2 ) 1 + z 2 n
其中p表示贊同數/總票數,n表示總票數,z為引數。

參考連結為:
1,http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_wilson_score_interval.html
2,http://blog.sina.com.cn/s/blog_67dd85310102wtdq.html

w e l _ s c o r e = p ¯ + z 2 2 n 1 + z 2 n z 1 + z 2 n p ¯ ( 1 p ¯ ) n + z 2 4 n 2