从客户购买/收听行为中统计“相似产品/音乐/...”的工作原理是啥?
Posted
技术标签:
【中文标题】从客户购买/收听行为中统计“相似产品/音乐/...”的工作原理是啥?【英文标题】:How does statistical calculation of "similar products/music/..." from customer buying/listening behaviour work?从客户购买/收听行为中统计“相似产品/音乐/...”的工作原理是什么? 【发布时间】:2011-07-02 04:31:43 【问题描述】:我的意思是亚马逊上的产品推荐,或者更具体地说是 Last.fm 上的类似乐队推荐。
鉴于您可以存储用户的完整收听/购买行为(谁听了 WHAT How OFTEN?),您如何计算哪些频段与任何给定频段相似,以及多少?
我在 Wikipedia 上找到了一些网站(Association rule learning、Affinity analysis),但我想从程序员的角度获取一些信息,最好是一些伪代码或 Python 代码。
因为我有
dic =
"Alice" : "AC/DC" : 2, "The Raconteurs" : 3, "Mogwai" : 1 ,
"Bob" : "The XX" : 4, "Lady Gaga" : 3, "Mogwai" : 1, "The Raconteurs" : 1
"Charlie" : "AC/DC" : 7, "Lady Gaga" : 7
其中的数字是播放次数,我将如何迭代它以找到乐队的相似性?
【问题讨论】:
我认为您的问题不清楚:您是在问实施篮子分析需要哪些数据结构? 嗯,也许我可以编辑我的问题以使其更清楚。我正在寻找使用的算法。如果它被称为篮子分析,你已经在某种程度上帮助了我。我现在在 Wikipedia 的 Affinity Analysis 下找到了它。但是,我在任何地方都找不到它的伪代码或 Python 代码。 @Justin:不,我没有使用数据库......但我期待着假设我使用的答案。我可能会学到一些东西。 好问题,恕我直言。我一直想知道这类算法。 【参考方案1】:《Programming Collective Intelligence: Building Smart Web 2.0 Applications》这本书很经典,使用Python。除其他外,它还处理推荐引擎。
【讨论】:
甜蜜。买了,但在 oreilly.com 上作为 ePub,因为这样在我的 iPad 上更好。 @Paul:有道理,我将链接更改为直接指向 O'Reilly。 哦,抱歉,这更有利于 Stack Overflow 弄清楚要拥有哪些附属链接。不过,知道 SO 的人们更喜欢从哪里获得他们的书会很有趣。 我现在也买了。本来希望在这里得到直接的答案,但是这本书有这么好的评论,我认为它完全值得购买。 +1。【参考方案2】:您可能会发现 Orange 中的 Association Rules 小部件(以及其他小部件)有助于入门。另一个有用的软件包是pysuggest,它实现了许多recsys/协作过滤算法。
【讨论】:
【参考方案3】:我认为您所说的是协同过滤。据我所知,亚马逊和其他公司使用了一个名为 Apache Mahout 的 Java 框架,简而言之,它是一个基于用户/项目数据的“推荐工厂”。
检查一下,它是免费的。但是,我不确定它是否适合 Python 集成,我在那个部门还不是新手。
【讨论】:
【参考方案4】:当您拥有关联用户和产品的数据时,您在这两个集合之间隐含了一个二分图。该图的(非常稀疏的)邻接矩阵很有用。如果您对列的长度进行规范化,然后将其转置乘以矩阵本身,那么在某种意义上,您就会拥有项目与项目的相似性,因为它们反映在中间用户群中。
【讨论】:
以上是关于从客户购买/收听行为中统计“相似产品/音乐/...”的工作原理是啥?的主要内容,如果未能解决你的问题,请参考以下文章