基本的市场篮子/推荐分析问题
我有一个关于市场购物篮分析和推荐算法的问题。用Python,我为我爸爸的商店做了一个非常基础的推荐算法(如果可以称之为算法的话)。基本上,它是通过计算购买商品X和Y的可能性,作为购买商品X和其他任何商品的比例来工作的。(根据我的理解,这就是Jaccard指数的概念)我想模仿像亚马逊这样的大型商店的“查看此商品的顾客也购买了”功能。
我的问题是,我不知道怎么去除所有的干扰信息。例如,很多人都买香蕉。所以香蕉总是会在其他商品的“高可能性”列表中出现,尽管它们之间并没有什么有趣的关联。有没有其他简单的统计方法可以过滤掉那些常见的购买商品?我现在的方法虽然能减少影响,但问题依然存在。
谢谢!
1 个回答
0
你在问的是协同过滤。一种方法是训练一个神经网络,通常会有一个隐藏层。输入层和输出层会为你商店里的每个商品各有一个感知器。你把一个人喜欢的产品输入进去,网络就会给出每个商品被这个用户喜欢的可能性(或者根据你训练的方式,给出分类结果)。
然后,你可以用现有的客户数据来训练这个模型,使用反向传播算法。
这种方法并不是在找一个“和你相似的人”,而是为用户建立一个个人档案,并根据这个档案来推荐商品。
因为你使用的是python,你可以用scikit-learn,利用现有的这些算法实现。
还有更高级的机制存在,整体来说,这个研究领域在不断发展。Netflix奖挑战就是围绕这个主题展开的。
(1) 隐藏层代表了分类,比如食物、工具、书籍等等。不过,算法会为你找到一些分类,你只需要告诉它你想要多少个类别,在网络结构中设置即可。如果有多个隐藏层,就可以表示子类别。