4

我目前正在学习推荐系统,学习了一些关于协同过滤、用户 CF、项目 CF 的知识,很明显使用这些算法来解决以下问题:1)用户买了 XXX 也买了 YYY 2)用户查看了 XXX 也查看了 YYY

我的问题是:如何解决这样的问题:1)用户购买了 XXX 也查看了 YYY 2)用户查看了 XXX 也购买了 YYY ?

更新:刚刚将标题更正为:“用户购买了XXX 也查看了YYY”

4

4 回答 4

2

虽然我不确定这是否真的是“推荐”,但我可以告诉您如何在 Mahout 中处理跨域的推荐。您将构建两个DataModels,一个基于用户项目购买,一个基于用户项目视图。您将使用购买数据作为UserSimilarityItemSimilarity实现的输入,但是,然后将视图数据作为输入DataModel提供给Recommender实现。然后,您将计算更像您建议的东西。

于 2011-03-29T07:19:34.650 回答
0

假设您有两个表 products 和 sold_products。每次您销售产品时,它都会添加到 sold_products 表中。我们会说这两个表是通过product_id 关联的,order_id 用于在sold_products 中将订单分组在一起。

我们假设您正在查看的产品的 product_id 为 1234。

  1. 从包含该产品的最后 25 个订单中获取 order_id 列表。

SELECT DISTINCT sold_products.order_id FROM sold_products WHERE product_id=1234 LIMIT 25

  1. 从那里我们将把所有的 id 放入一个由角分隔的字符串中

例如 PO1234、PO435、PO3456....

  1. 从这些订单中选择产品 ID,我喜欢按频率排名

SELECT DISTINCT products.* FROM sold_products 在 products.product_id=sold_products.product_id 上选择产品1) DESC

于 2011-03-29T04:23:39.163 回答
0

您需要参考OReilly 的“Programming Collective Intelligence”一书的第 2 章。要找到匹配的产品,即“购买此商品的客户也购买了...”部分,您需要

  • 首先收集各种用户的偏好
  • 然后找到相似的用户
  • 然后查看他们购买或喜欢的其他物品。

上述步骤涉及算法。该书中提供了更多详细信息以及这些算法的 python 代码。

于 2011-03-29T07:33:49.780 回答
0

您通常需要两个数据集。I.e 交易 id 和产品作为第一个,visitorID 和产品查看作为第二个,以达到将任何两种产品一起出售(或查看)的置信度百分比。您可以使用 R(统计软件)并安装一个名为“arules”的包来轻松生成这些建议。

这是您可能希望在 R 中签出的示例代码

setwd(“C:/Documents and Settings/rp/Desktop/output”); install.packages(“arules”); 图书馆(“规则”);txn = read.transactions(file=”Transactions_sample.csv”, rm.duplicates= FALSE, format=”single”,sep=”,”,cols =c(1,2)); 篮子规则 <- apriori(txn,parameter = list(sup = 0.5, conf = 0.9,target=”rules”)); 检查(篮子规则);

如果您真的想了解它是如何工作的,您可能需要查看名为产品购买模式分析的http://www.tatvic.com/resources白皮书,该白皮书指出了如何简单地使用您的网络数据来完成它.

此外,如果您想为其使用现成的 API,请访问http://www.liftsuggest.com/how-lift-product-recommendation-works

于 2011-04-01T00:17:23.893 回答