【问题标题】:Good similarity measure for comparing users用于比较用户的良好相似性度量
【发布时间】:2018-01-26 15:37:29
【问题描述】:

我想根据对 10 个问题的回答来比较用户。我最初的想法是将每个问题解析为一个整数 [1, 5],但这个想法不会一直有效。例如:

vec1 = [1,1,1,1,1,1,1,1,1,1]

vec2 = [5,5,5,5,5,5,5,5,5,5]

get_cos_sim(vec1, vec2) = 1

因此,即使用户的反应完全不同,向量也是相同的。

我想根据他们对每个问题的回答的相似性来获得相似的用户。因此,对于给定的问题,如果 A 的回答解析为 1,B 的回答解析为 2,那么这些问题中的回答之间的相似度将高于回答 4 的 A 和 C 的回答。

【问题讨论】:

    标签: recommendation-engine euclidean-distance cosine-similarity


    【解决方案1】:

    这是我将使用的指标:

    取每个答案之间差异的绝对值,将所有这些值相加,相似度是相反的。

    【讨论】:

    • 我想过这样做,但问题是:采用 2 元素向量 [0, 5][5, 0]。然后算法会为每个向量返回 10,尽管用户对问题的回答根本不同。我在想欧几里得距离。
    • 对,取反。该向量的相似度为 0.1
    • [5, 0], [5, 0] 的相似度是无穷大。 [3, 1], [5, 2] 的相似度为 0.333。
    • 所以当度量接近无穷大时越相似,越接近 0 越不相似?
    • 嗯,最大的正非无限结果是“1 off”。像 [4, 5] 一样,[5, 5] 是 1/1,即 1。所以度量的域实际上是从 0 到 1,您可以在 1 处除以零
    猜你喜欢
    • 1970-01-01
    • 2012-01-28
    • 2013-01-21
    • 2019-09-18
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2012-12-26
    相关资源
    最近更新 更多