分别用matlab和python计算物品相似度矩阵(Jaccard系数
生活随笔
收集整理的這篇文章主要介紹了
分别用matlab和python计算物品相似度矩阵(Jaccard系数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
| 用戶\物品 | A | B | C | D | E |
| 101 | 1 | 1 | 0 | 0 | 1 |
| 102 | 0 | 1 | 0 | 1 | 0 |
| 103 | 1 | 1 | 1 | 1 | 1 |
| 104 | 1 | 1 | 0 | 1 | 0 |
| 105 | 1 | 1 | 0 | 0 | 1 |
| 106 | 0 | 0 | 0 | 1 | 0 |
| 107 | 1 | 0 | 0 | 0 | 0 |
?
?
?
從物品->用戶矩陣,來計算物品相似度矩陣
?
Matlab代碼計算A、C的相似度:
A=[
1 0 1 1 1 0 1;
0 0 1 0 0 0 0]
D=pdist(A,'jaccard')
coefficient=1-D
?
?
?
得到Jaccard距離和Jaccard系數
D =
? ? 0.8000
coefficient =
? ? 0.2000
?
Python代碼計算C、A的相似度:
?
matV = mat([[0,0,1,0,0,0,0],[1,0,1,1,1,0,1]]) print ("CA的jaccard系數:", 1-dist.pdist(matV,'jaccard'))?
?
?
?
?
得到
?
CA的jaccard系數: [ 0.2]
?
手算
A向量: 1 0 1 1 1 0 1
C向量:0 0 1 0 0 0 0
A∩C=
?
A∪C不是7,而是如下:
?
?
A、C都是零的不算入并集內
所以最后結果是1/5=0.2
與百度解釋吻合:
http://baike.baidu.com/link?url=5E1CRNk--Dt_gNfN30s748fkQfJgXpunsq9OnnGzhkHv5boY9fLvbsEl3JjMBkosh7qC48NcG96f7CwhfHX5MTq-A7oQmXzlJfAshM_thWg2C8H8jNY0TCF41WFd70Xd
總結
以上是生活随笔為你收集整理的分别用matlab和python计算物品相似度矩阵(Jaccard系数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: raise errorclass(err
- 下一篇: Ubuntu16.04 休眠状态无法唤醒