利用关联规则实现推荐算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用关联规则实现推荐算法相关的知识,希望对你有一定的参考价值。
参考技术A 关联规则是以规则的方式呈现项目之间的相关性:关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。关联规则的经典例子是通过发现顾客放入其购物篮中的不同商品之间的联系,可分析顾客的购买习惯。通过了解哪些商品频繁地被顾客同时购买,可以帮助零售商制定营销策略。在医学方面,研究人员希望能够从已有的成千上万份病历中找到患某种疾病的病人的共同特征,寻找出更好的预防措施。
它是一种购物车的分析方法,用于揭示产品之间的关联关系。
他有三个简单的公式:
Support(X, Y) = Freq(X, Y) / N :它表示 X 和 Y 一起出现的概率。它是 X 和 Y 一起出现的频率除以 N。
Confidence(X, Y) = Freq(X, Y) / Freq(X) :表示购买产品X时购买产品Y的概率。X 和 Y 一起出现的频率除以 X 出现的频率。
Lift = Support(X, Y) / (Support(x) * Support (Y)) :当购买X时,购买Y的概率增加了lift的倍数。X 和 Y 一起出现的概率是 X 和 Y 分别出现的概率的乘积。它陈述了一个表达式,例如当我们购买一种产品时,购买另一种产品的概率会增加多少倍。
下面我们将使用Apriori Algorithm向用户推荐相应的产品
这里我们使用的数据集是online retail II dataset
我们使用这个函数来确定数据的阈值。
下面这个函用阈值替换了异常值。
第三个函数中我们从数据中提取包含“C”的值。“C”表示退回的物品。要计算总价,变量数量和价格必须大于零。在这个函数中还调用了 Outlier 和 Threshold 函数。
数据集中的收据(Invoice)包含了产品的购买,所以我们先处理这个
根据 Invoice 和 Description,我们通过 groupby 计算 Quantities,可以计算产品的数量。
我们使用 unstack 来避免重复的索引,使用 iloc 来显示前 5 个观察结果。如果产品不在收据中,则 使用NA 表示。
进行独热编码。把 NA 的地方写 0。
如果发票中的产品数量大于0,我们就写1,如果小于0或0,我们就写0。用apply对行或列进行操作。这里将通过应用 applymap 并执行操作来遍历所有单元格。
我们创建了一个名为 create_invoice_df 的函数。如果想根据id变量搜索并得到结果,它会根据stockcode进行与上述相同的操作。如果我们输入的id为False,它会根据Description执行上面的操作。
通过将我们用 Apriori 找到的Support插入到 association_rules 函数中,找到一些其他的统计数据,例如置信度和提升度。
POST产品和编号为22326的产品同时出现的概率为0.225383。被一起买的概率是0.275401。同时购买这两种产品的概率增加为1.123735。
数据集地址: https://archive.ics.uci.edu/ml/datasets/Online+Retail+II
原文地址: https://www.overfit.cn/post/2f372e4dc8254fd3bd5ceb6e20aaa75d
以上是关于利用关联规则实现推荐算法的主要内容,如果未能解决你的问题,请参考以下文章
python数据分析与挖掘学习笔记-电商网站数据分析及商品自动推荐实战与关联规则算法