- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原理 + 代码|手把手教你用Python实现智能推举算法
首先导入相关库并进行数据探究性分析
import?pandas?as?pdimport?numpy?as?npdf?=?pd.read_csv(bike_data.csv,?encoding=gbk)df.info();?df.head()
数据参数解释
OrderNumber:客户昵称
LineNumber:购买挨次,如前三行分别表示同一个客户购买的三样商品的挨次
Model:商品名
接着来看看商品的品种
print(f数据集中共有{df[Model].nunique()}种商品)model_names?=?df[Model].unique()print(商品名分别为:)#?5?个为一行显示for?i?in?range(0,?len(model_names),?5):??????print(model_names[i:i+5])
再来看看最畅销的 15 种商品
再进行一些简约的可视化
top_15?=?grouped.sort_values(by=count,?ascending=False).head(15)plt.figure(figsize=(8,?6))sns.barplot(data=top_15,?x=count,?y=Model)plt.grid(True)
使用 Apriori 算法求解关联规章
首先生成购物篮,并将同一个客户购买的全部商品放入同一个购物篮,需要提前使用pip install Apriori安装,之后我们使用 Apriori 包中的 dataconvert 函数,下面是需要传入的参数解释
arulesdata:数据集 -- DataFrame
tidvar: “分类的索引”,即划分购物篮的标准,本案例是依据客户 OrderNumber -- object类型
itemvar:将什么东西放进篮子里,本案例是将数据集中的商品,就是 Model 列放入篮子 -- object类型
data_type: 默认选择 inverted,库中供应的不变
留意:需要留意传入的参数类型,只需对了,直接套用就不是什么难事
import?Apriori?as?apri#?需要略微等待一下baskets?=?apri.dataconvert(arulesdata=df,?tidvar=OrderNumber,????????????????????????????itemvar=Model,?data_type=inverted)#?前往的购物篮是一个大列表,大列表中的每一个小列表表示一个篮子#?购物篮个数刚好等于数据集中的客户数量type(baskets),?len(baskets)?==?df[OrderNumber].nunique()#?(list,?True)
现在查看前五个购物篮中的物品
现在生成关联规章,依据陈列组合,可知这些买卖将会产生 21255×21254÷2 这么多个关联规章。首先就要满足支持度的要求,太小则直接被删去,支持度的大小可依据关联规章的多少调整 假如关联规章很少,可依据实际情况放宽支持度的要求。相关参数说明:
+ minSupport:最小支持度阈值
+ minConf:最小相信度阈值
+ minlen:规章最小长度
+ maxlen:规章最大长度,一般2就够了
这里,minSupport 或 minConf 设定越低,产生的规章越多,计算量也就越大
结果说明: 以 result 第一行为例
+ lhs: 被称为左手规章,通俗理解即用户购买的商品 - 山地车内胎
+ rhs: 被称为右手规章,通俗理解即依据用户购买某商品来推举的另一件商品 - ll山地胎
+ support: 支持度,山地车内胎 和 ll山地胎 同时消灭在一张购物小票中的概率
+ confidence: 相信度,购买了 山地车内胎 的前提下,同时购买 ll山地胎 的概率
+ lift:向购买了 山地车内胎 的客户推举 ll山地胎 的话,这个客户购买 ll山地胎 的概率是这个客户自然而然购买 ll山地胎 的 400% 左右,即高了300% 多!
现在我们筛选互补品和互斥品,代码如下
#?互补品#?lift?提升度首先要大于1,然后再排序选择本人期望深究的前?n?个hubu?=?result[result[lift]??1].sort_values(by=lift,?????????????????????ascending=False).head(20)#?互斥品huchi?=?result[result[lift]??1].sort_values(by=lift,?????????????????????
文档评论(0)