【发布时间】:2012-05-12 00:54:29
【问题描述】:
我的树的结构很简单,深度为二,每个子节点都是根的直接子节点,每个节点除了根之外都有一个权重。有没有衡量两棵树相似度的好方法?
这是原始问题:
假设你有一个关于你读过的书的数据列表。该列表包含键和值,例如哈希表。键是书籍类别,值是您在当前类别下阅读的书籍数量。所以每个人都有这个数据列表,我想根据这个数据列表来比较两个用户的相似度。我知道协作过滤可以做到这一点,但我正在尝试这种方式并将其与 cf 进行比较。
所以我将数据列表视为加权树。类别为子节点,每个子节点的权重为该类别在用户书籍中出现的次数。
相似度与协同过滤中两个用户的相似度相似。这是一个数字。
【问题讨论】:
-
如果你能清楚地定义“相似”,算法就会弹出来。你对相似度的定义是什么?它是布尔谓词还是连续度量?正如您所知道的,我们的问题很可能会得到密切投票:不是一个真正的问题:很难说出这里要问的问题。这个问题是模棱两可、含糊不清、不完整、过于宽泛或修辞的,无法以目前的形式得到合理的回答。
-
@Kaz 谢谢提醒,我会注意的。
-
如果树的深度为二,而根没有权重,这与有序集合(例如列表或向量)有何不同?
-
@Kaz 是的,你是对的,它不是一棵树,它是一个哈希表,或者任何键值对集合。我将其描述为树,因为我认为可能有一些树的方法或算法可以在这里使用。
-
你可能不正确。您实际上拥有的结构是一个集合,因为它是无序的,并且相似性度量(无论您如何定义它)是一个集合操作。树操作不太可能揭示集合操作。缺少顺序很重要,因为这意味着如果两个对象具有相同的内容,它们应该是相似的,而不考虑任何顺序。
标签: tree recommendation-engine collaborative-filtering