【发布时间】:2014-08-12 16:44:31
【问题描述】:
在创建基于内容的推荐器时,我有几个二进制测量值,结合整数测量值,我希望比较这两个向量。
例如,考虑以下两个用户和特征 t1 - t5,其中特征可能是,例如:
- 满足要求1
- 满足要求2
- 满足要求3
- 年经验,
- years_college
... [ t1 t2 t3 t4 t5]
User1 0 1 1 18 4
User2 1 1 1 15 2
User2 1 1 0 4 8
数据(显然)不是跨行的高斯分布。如何计算这些用户之间的相似度分数?我需要先将特征归一化吗?
我正在寻找类似以下的结果(在 Python 中,只是为了显示结果。我在 Python 中不需要它。):
a = array([[0, 1, 1, 18, 4],
[1, 1, 1, 15, 2],
[1, 1, 0, 4, 8]])
print squareform(1 - pdist(a, metric='cosine'))
print squareform(1 - pdist(a, metric='correlation'))
print squareform(1 / (1 + pdist(a, metric='euclidean')))
产生输出:
[[ 0. 0.994 0.627]
[ 0.994 0. 0.566]
[ 0.627 0.566 0. ]]
[[ 0. 0.991 0.384]
[ 0.991 0. 0.273]
[ 0.384 0.273 0. ]]
[[ 0. 0.211 0.064]
[ 0.211 0. 0.074]
[ 0.064 0.074 0. ]]
但我想确保我没有过分强调 t4 和 t5 值。
【问题讨论】:
标签: similarity recommendation-engine