推薦演算法 皮爾遜相關係數的相似度

2021-09-14 04:48:43 字數 2155 閱讀 2053

基於用的推薦程式的乙個重要的部分是使用者相似度(usersimilarity)實現。基於使用者的推薦非常依賴這個元件。如果對使用者的相似性缺乏可靠有效的定義,這類推薦方法是沒有意義的。這也適用於使用者的推薦的「近親」------基於物品的推薦程式,它同樣依賴相似性。

皮爾遜相關係數是乙個介於-1和1之間的數,它度量 兩個一一對應數列之間的線性相關程度。也就是說,它表示兩個數列中對應數字一起增大或者一起減小的可能性。它度量數字一起按比例改變的傾向性,也就是說兩個數列中的數字存在乙個大致的線性關係。當該傾向性強時,相關值趨於1。當相關性很弱時,相關值趨於0。在負相關的情況下乙個序列的值很高而另乙個序列的值低---相關趨勢趨於-1

2、協方差計算的是兩個序列變化趨勢一致的絕對量。當兩個序列相對於各自的均值點向同乙個方向移動得越遠,協方差就越大。除以方差則是為了對這一變化進行歸一化。

這一統計學中廣泛使用的概念,同樣可以用於度量使用者之間的相似性。它度量兩個使用者針對同一物品的偏好值變化趨勢的一致性(都偏高或者都偏低)。

例如:1,101,5.0

1,102,3.0

1,103,2.5

2,101,2.0

2,102,2.5

2,103,5.0

2,104,2.0

3,101,2.5

3,104,4.0

3,105,4.5

3,107,5.0

4,101,5.0

4,103,3.0

4,104,2.5

4,106,4.0

5,101,4.0

5,102,3.0

5,103,2.0

5,104,4.0

5,105,3.5

5,106,4.0

我們注意到使用者1和使用者5看起來相似,因為他們的偏好值一同改變。對於物品101,102,103他們大體一致,101最好,102略差,103不理想。類似的使用者1和使用者2不那麼相似。注意關於使用者1的分析不包括104-106,因為使用者對他們的偏好是未知的。相似度的計算僅能在使用者都表達了偏好的物品上進行。

在使用者1和其它使用者之間基於3個共有物品的皮爾遜相關係數

101102103

與使用者1的相關性

使用者15.0

3.02.5

1.000

使用者22.0

2.55.0

-0.764

使用者32.5--

-使用者4

5.0-

3.01.000

使用者54.0

3.02.0

0.945

首先,它沒有考慮兩個使用者同時給出偏好值得物品數目,在推薦引擎中可能不太可靠

。例如,兩個看過200部相同的電影的使用者,即便他們給出的評分偶爾不一致,但可能要比兩個盡看過兩部相同的使用者更相似。這在上面的資料中有體現;注意使用者1和5對三個共同商品表達了偏好,他們的品味看似比較相近。但是,使用者1和4的交集僅包含兩個物品,卻得到了1.0這個更高的相關值。這有點不符合常規。

其次,基於該計算的定義,如果兩個使用者的交集僅包含乙個物品,則無法計算相關性。這也是沒有計算使用者1和3之間的相關性的原因。在小的或稀疏的資料集上,這個問題就凸顯出來了。因為其中使用者的物品集很少重疊。當然,這可能也是一種優點,直觀上講,如果兩個使用者的交集僅有乙個物品的話,他們可能並不太相似。

最後,只要任何乙個序列**現偏好值相同的情況(此時該序列方差為0,導致皮爾遜相關計算公式的分母為0)。相關係數都是未定義(undefined).這種情況並不需要兩個序列中的偏好值都完全一樣。例如,若使用者5對所有三個物品的偏好值都是3.0。即使使用者1有3.0以外的偏好值,也無法計算使用者1和使用者5之間的相似度(因為皮爾遜相關係數將是未定義的)。這一問題同樣很可能出現在兩個使用者的偏好交集很小的情形。

儘管皮爾遜相關係數在早期關於推薦系統的**中很常見,並且在很多介紹推薦系統的書中被提及,但它未必是最優的。當然,它不差;你只需理解它是如何工作打的。

為了解決上述的問題,我們可以在計算的基礎上提供擴充套件,即加權

皮爾遜相關係數並不直接反映其用到的物品數目。而我們是需要這個數字的。考慮的資訊越多,所得到的相關結果越可靠。為了體現這一點,最好在基於較多物品計算相關係數時,使正相關值向1.0偏移,而使負相關向-1.0偏移。或者在基於較少物品計算相關係數時,可以讓相關值向偏好值的均值偏移;這與前面的效果類似但實現會比較複雜,因為它需要記錄使用者對的平均偏好值。

皮爾遜相關係數

皮爾遜相關係數是比歐幾里德距離更加複雜的可以判斷人們興趣的相似度的一種方法。該相關係數是判斷兩組資料與某一直線擬合程式的一種試題。它在資料不是很規範的時候,會傾向於給出更好的結果。公式一 皮爾遜相關係數計算公式 公式二 皮爾遜相關係數計算公式 公式三 皮爾遜相關係數計算公式 公式四 皮爾遜相關係數計...

皮爾遜相關係數 如何理解皮爾遜相關係數和協方差

如果結果為正值,則說明兩者是正相關的,也就是說乙個人身高越高體重越重。如果結果為負值,就說明兩者是負相關。如果為0,則兩者之間沒有關係,身高和體重之間沒有關聯。雖然協方差能反映兩個隨機變數的相關程度 協方差大於0的時候表示兩者正相關,小於0的時候表示兩者負相關 但是協方差值的大小並不能很好地度量兩個...

推薦系統 2 計算皮爾遜相關係數

如下 coding utf 8 皮爾遜相關係數 import json import numpy as np 計算user1 和 user2的相關係數 defpearson score dataset,user1,user2 if user1 not in dataset raise typeerr...