【发布时间】:2016-04-01 07:39:08
【问题描述】:
我的数据有问题
我使用 python 从我的数据库中读取数据,假设分配给变量data
type(data) 是list,实际上是list of list
data = [(1, 'Shirt', 2),(1, 'Pants', 3),(2, 'Top', 2),(2, 'Shirt', 1),(2, 'T-Shirt', 4), (3, 'Shirt', 3),(3, 'T-Shirt', 2)]
data[0][0] is unique_id 和 data[0][1] is category_product 和 data[0][2] is count
我需要基于category_product 使用余弦相似度计算unique_id 1 和2 之间的相似度(我计划使用scipy)
-
unique_id不只是两个,可以超过2个
我想我需要将我的data 转换为矩阵:
unique_id | Shirt | Pants | Top | T-Shirt
1 | 2 | 3 | 0 | 0
2 | 1 | 0 | 2 | 4
3 | 3 | 0 | 0 | 2
我想用余弦相似度计算这个矩阵,输出是:
1,2,0.121045506534
1,3,0.461538461538
2,3,0.665750285936
Sim(1,2) = 0.121045506534
我如何用 python 做到这一点?
谢谢
【问题讨论】:
-
你的数据不是列表的列表,而是元组的列表 :) 有很大的不同。
-
啊,你说得对,对不起我的错误:)