原理 + 代码|手把手教你用Python实现智能推荐算法.docxVIP

原理 + 代码|手把手教你用Python实现智能推荐算法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原理 + 代码|手把手教你用Python实现智能推举算法 首先导入相关库并进行数据探究性分析 import?pandas?as?pd import?numpy?as?np df?=?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)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档