1:意味着手机和屏幕保护之间存在积极的关系(即,手机和屏幕保护经常一起出现,而不是随机出现)Lift<1:表示手机和屏幕保护之间存在负关系(即,手机和屏幕保护一起出现的频率比随机发生的要低)数据两个公共数据集可供用户探索和学习市场篮子分析:UCI数据。世界食品数据集也可在Arules包中获得。在本教程中,我们将使用UCI数据集,因为它与现实世界的数据集非常相似,这给了我们一个机会来重塑数据,并按照Arules包要求的格式对其进行重构。数据字典发票号库存代码描述数量发票日期单价客户ID国家图书馆(readxl)图书馆(readr)图书馆(arules)图书馆(arulesviz)图书馆(magritr)图书馆(dplyr)图书馆(lubridate)图书馆(forcats)图书馆(ggplot2)预处理此部分是可选的。您可以跳到“读取数据”部分,而不会丢失任何连续性。如上所示,数据集每项有一行。我们创造了一个小小的R封装mbar,用于数据预处理。它可以从Github安装,如下所示:install.packages(“devtools”)devtools::install_Github(“rsquaredacademy/mbar”)我们将使用mbar包中的mbar_prep_data()来重新调整数据的形状,以便每个事务有一行,列之间的项目不包括列名。library(mbar)mba_data%mutate(time_of_day=hour(invoicedate))%>%pull(time_of_day)%>%as.factor()%>%fct_count()purchase_time%>%ggplot()+geom_col(aes(x=f,y=n)fill=“blue”)+xlab(“一天中的小时”)+ylab(“事务”)+ggtitle(“每小时事务分配”)平均购买多少项?项目%分组_by(invoiceno)%>%汇总(count=n())%>%拉动(count)平均(项目)\ \[1]20.92313中中值(项目)\35\35;[1]10个最采购项目mba_数据%%分组_by(描述)%>%汇总(count=n())%>%排列(desc(count))\\\35; \35; 35; \35; 35; 35 \ 1白色挂心T形灯架2369 2 Regency Cakestand 3第2200层353535353535353535353535353535353535\35\35\\\\\35\35\35\\\35\35\\\3535\\\黑色头骨。1350…在4202行以上的情况下,平均订单值总计_revenue%group_by(invoiceno)%>%summary(order_sum=sum(unitprice))%>%pull(order_sum)%>%sum()total_transactions%group_by(invoiceno)%>%summary(n())%>%nrow()total_revenue/total_transactions[1]96.47892读取数据,现在是时候将数据读取到R中了。我们将使用arules包中的read.transactions()。由于数据的结构,无法使用read.csv()或read_csv()读取数据。我们将读取transaction_data.csv文件,因为它包含我们在上一步中修改过的数据。为了读取数据集,我们需要指定以下内容:引号内数据集的名称(单引号或双引号)数据的格式,如果每行代表一个事务,使用篮子,如果每一行代表交易中的一个项目,使用单个分隔符来分隔数据集中事务中的项目,每一行代表一个事务,事务中的项目由一个、分隔。篮子咖啡0.014362380 1.0000000 55.94168 372[5]糖=>咖啡0.014362380 1.0000000 55.94168 372[6]棚=>钥匙FOB 0.0112273696 1.0000000 61.23168 292[7]设置3个追溯茶,##糖=>咖啡0.014362380 1.0000000 55.94168 372[8]咖啡,##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[9]咖啡,##糖=>设置3个后斑点茶0.014362380 1.0000000 69.62634 372[10]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.009999614 0.8900344 25.16679 259冗余和非冗余规则冗余规则如果存在具有相同或更高置信度的更一般规则,则规则是冗余的。也就是说,如果一个更具体的规则比一个更一般的规则具有同等甚至更少的预测性,那么它是多余的。如果规则具有相同的rhs,但从lhs中删除了一个或多个项目,则规则更为一般。上述示例中的示例1,第一条规则有同样的支持,接下来的两条规则是“求生”和“举重”。规则左侧的第二项不添加任何值,因此使规则冗余。上述示例中的示例2,前两个规则有相同的支持,辅助和提升。第三条规则只在升力方面有所不同。上述示例中的示例3,第一条和第三条规则有相同的支持,辅助和提升。第二条规则在信心和提升方面是不同的。既然我们已经了解了冗余规则是什么以及如何识别它们,让我们使用下面的R代码来检查它们。inspect(rules[is.redundant(rules)]) ## lhs rhs support ## [1] {SET 3 RETROSPOT TEA,SUGAR} => {COFFEE} 0.01436238 ## [2] {COFFEE,SET 3 RETROSPOT TEA} => {SUGAR} 0.01436238 ## [3] {COFFEE,SUGAR} => {SET 3 RETROSPOT TEA} 0.01436238 ## confidence lift count ## [1] 1 55.94168 372 ## [2] 1 69.62634 372 ## [3] 1 69.62634 372 Non-redundant Rules Now let u看看非冗余规则。检查(规则)is.redundant(rules)]) ## lhs rhs support confidence lift count ## [1] {REGENCY TEA PLATE PINK} => {REGENCY TEA PLATE GREEN} 0.009034400 0.8863636 71.29722 234 ## [2] {BACK DOOR} => {KEY FOB} 0.009613528 1.0000000 61.23168 249 ## [3] {SET 3 RETROSPOT TEA} => {SUGAR} 0.014362380 1.0000000 69.62634 372 ## [4] {SUGAR} => {SET 3 RETROSPOT TEA} 0.014362380 1.0000000 69.62634 372 ## [5] {SET 3 RETROSPOT TEA} => {COFFEE} 0.014362380 1.0000000 55.94168 372 ## [6] {COFFEE} => {SET 3 RETROSPOT TEA} 0.014362380 0.8034557 55.94168 372 ## [7] {SUGAR} => {COFFEE} 0.014362380 1.0000000 55.94168 372 ## [8] {COFFEE} => {SUGAR} 0.014362380 0.8034557 55.94168 372 ## [9] {REGENCY TEA PLATE GREEN} => {REGENCY T每盘玫瑰0.010347091 0.8322981 55.99313 268 \\35\\\\35; 键FOB 0.012727696 1.000000 1.000000 61.2310 61.23168 292 \\\\\\\\ \\\\\\\\\\\\[12]套/20张红色反光纸巾,##设置/6个红色斑点纸杯=>设置/6个红色斑点纸盘0.009111617 0.8872180 48.68609 236[13]粉红再生茶杯和茶碟,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.018339060 0.8828996 24.96505 475[14]绿色丽晶茶杯和茶托,##粉红丽晶茶杯和茶托=>玫瑰丽晶茶杯和茶托0.018339060 0.8512545 22.59051 475[15]粉红丽晶茶杯和茶托,##Regency Cakestand 3层=>玫瑰Regency茶杯和茶托0.011235087 0.8584071 22.78033 291[16]粉色Regency茶杯和茶托,##Regency Cakestand 3层=>绿色Regency茶杯和茶托##林地夏洛特包=>红色后景色夏洛特包0.010771785 0.8110465 23.65644 279[18]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.009999614 0.8900344 25.16679 259[19]绿色丽晶茶杯和茶托,##粉红丽晶茶杯和茶托,##Regency Cakestand 3 tier=>Roses Regency茶杯和茶托0.009999614 0.8839590 23.45843 259什么影响了产品X的购买?到目前为止,我们已经学会了如何生成,检查和删减规则。现在,我们如何使用这些规则?为了商业意义,我们需要制定一套规则,既可以用于实体店的产品放置,也可以作为在线商店的建议,或者通过电子邮件营销等进行目标营销。为了实现这一目标,我们需要知道两件事:哪些产品影响了产品x的购买?产品x影响了哪些采购?对于我们的案例研究,我们可以将上述问题修改为:是什么影响了糖的购买?查看影响糖购买的产品,我们将继续使用apriori()函数,但还要添加一个参数,外观。它限制了项目的外观。因为我们希望规则的右边只有一个值,糖,我们将把rhs的论点设为sugar。规则的左侧应包括所有影响糖购买的产品,即不包括糖。我们将使用默认参数并为其提供值lhs,即默认情况下,除糖以外的所有项目都可以显示在规则的左侧。默认RHS Sugar Sugar 0.01436238 1.0000000 69.62634[3]Coffee=>Sugar 0.01436238 0.8034557 55.94168 Count[1]372[2]372[3]372以获得我们提到的支持和信心,我们知道以下产品影响了糖的购买:咖啡套装3追溯茶产品X影响了什么购买?现在我们知道哪些产品影响了糖的购买,让我们回答第二个问题。糖的购买影响了什么?在这种情况下,我们希望糖在规则的左边,它影响的所有产品都在右边。我们将lhs参数设置为sugar,将缺省参数设置为rhs作为所有产品,默认情况下,受糖影响的购买应出现在规则的左侧。糖咖啡0.01436238 1 55.94168 372对于我们提到的支持和信心,我们知道以下产品的购买受糖的影响:咖啡集3追溯茶的购买受糖的购买受糖的影响:咖啡集3追溯茶的购买受糖的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受茶的购买受茶集3追溯茶的购买受茶集3追溯茶的购买受糖的购买受茶集3追溯茶的购买受茶的购买受茶集3追溯茶的购买受茶的购买受茶的购买受茶的购买受茶设置3个反向点茶 0.01436238 1.0000000 69.62634 372 ## [5] {SET 3 RETROSPOT TEA} => {COFFEE} 0.01436238 1.0000000 55.94168 372 ## [6] {COFFEE} => {SET 3 RETROSPOT TEA} 0.01436238 0.8034557 55.94168 372 ## [7] {SUGAR} => {COFFEE} 0.01436238 1.0000000 55.94168 372 ## [8] {COFFEE} => {SUGAR} 0.01436238 0.8034557 55.94168 372 ## [9] {SET 3 RETROSPOT TEA,##糖=>咖啡0.01436238 1.0000000 55.94168 372[10]咖啡,## SET 3 RETROSPOT TEA} => {SUGAR} 0.01436238 1.0000000 69.62634 372 Confidence conf_rules {SUGAR} 0.014362380 1.0000000 69.62634 372 ## [3] {SUGAR} => {SET 3 RETROSPOT TEA} 0.014362380 1.0000000 69.62634 372 ## [4] {SET 3 RETROSPOT TEA} => {COFFEE} 0.014362380 1.0000000 55.94168 372 ## [5] {SUGAR} => {COFFEE} 0.014362380 1.0000000 55.94168 372 ##[6]棚=>键FOB 0.0112273696 1.0000000 61.23168 292[7]设3个追溯茶,##糖=>咖啡0.014362380 1.0000000 55.94168 372[8]咖啡,##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[9]咖啡,##糖=>设置3个后斑点茶0.014362380 1.0000000 69.62634 372[10]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰玫瑰摄政茶茶茶茶茶杯和茶托;=>绿色摄政茶茶杯和茶杯0.0099999999614 0.89003444 25.16679 2599电梯升降糖0.014362380 1.0000000 69.62634 372 35\[3]糖;=>设置3回顾点茶0.014362380 1.000000 1.000000 69.62634 372 35\\\35;[4]咖啡,咖啡,一个##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[5]咖啡,## SUGAR} => {SET 3 RETROSPOT TEA} 0.014362380 1.0000000 69.62634 372 ## [6] {BACK DOOR} => {KEY FOB} 0.009613528 1.0000000 61.23168 249 ## [7] {SHED} => {KEY FOB} 0.011273696 1.0000000 61.23168 292 ## [8] {REGENCY TEA PLATE GREEN} => {REGENCY TEA PLATE ROSES} 0.010347091 0.8322981 55.99313 268 ## [9] {SET 3 RETROSPOT TEA} => {COFFEE} 0.014362380 1.0000000 55.94168 372[10]咖啡=>设置3个追溯点茶0.014362380 0 0.8034557 55.94168 372可视化规则,Arules的作者创造了一个配套的软件包,阿鲁斯维兹它提供了几个可视化由apriori()生成的规则的选项。散点图我们可以使用默认的plot()方法创建散点图。它将在X轴上绘制支撑,Y轴和升力上的置信度由点颜色的透明度/α表示。Plot(basket_rules)网络图我们可以使用方法参数创建网络图,并提供值图。您可以在下面的图中看到规则的方向性。例如,买棚屋的人也买钥匙,同样,买后门的人也买钥匙。当我们试图绘制太多的规则时,很难确定规则的方向性。method参数也接受其他几个值。情节(顶规则)方法='graph')要记住的事情..使用提升时规则的方向性丢失使用提升时规则的方向性丢失。在下面的示例中,以下两条规则的电梯相同:手机=>屏幕保护屏幕保护=>手机很明显,无论规则的方向如何,电梯都是相同的。如果你看下面的例子,信心作为一种度量可能会产生误导。对第二条规则的信心,屏幕保护=>手机,大于第一条规则,手机=>屏幕保护。这并不意味着我们可以向购买屏幕保护的客户推荐手机。确保我们不使用规则是很重要的,因为它们有很高的可信度。摘要市场篮子分析是一种无监督的数据挖掘技术,它揭示了经常一起购买的产品,从而创造出符合成本效益的假设规则。具有洞察力和可操作性的关联规则挖掘在多个行业中都有应用。当您试图使用市场篮分析时,使用提升信心作为一种度量,规则的方向性会丢失,这会误导您对领域/业务的了解。特别是当您尝试选择或短名单规则并将其用于商店中的产品放置或在线推荐产品时。在实施这些规则之前,对其进行批判性审查是一种良好的做法。“/>

市场篮子分析实用介绍——关联规则

5月1日,二千零一十九
通过

(本文首次发表于 rsquared学院博客,并对 188bet appR博主

介绍

有没有想过为什么商品在零售/网上以特定的方式展示
商店。为什么根据添加到的内容向您建议某些项目
手推车?将其归咎于市场篮子分析或关联规则挖掘。

资源

以下是与此日志相关的所有资源的链接:

什么?

市场篮子分析采用关联规则挖掘的方法识别
经常一起购买的产品。在我们深入到
市场篮子分析,让我们对关联规则有一个基本的了解
采矿。它在一个集合中查找不同对象之间的关联。在这种情况下
市场篮子分析,对象是由客户购买的产品。
集合就是事务。简而言之,市场篮子分析

  • 是一种无监督的数据挖掘技术
  • 发现经常一起购买的产品
  • 并创建if-then场景规则

为什么?

市场篮子分析为以下方面提供了可行的见解:

  • 设计店铺布局
  • 在线推荐引擎
  • 目标营销活动/促销/电子邮件活动
  • 交叉/追加销售
  • 画册设计

优势

市场篮子分析是成本效益因为所需数据很容易
通过电子销售点系统提供。它产生
可操作的见解对于植入式广告,交叉/向上销售策略,
有针对性的营销活动,目录设计,定价策略,
库存控制等。

用例

关联规则挖掘在多个行业都有应用,包括
零售业,电信,银行业,保险,制造业和医疗业。
让我们更详细地了解一下它在以下行业中的应用:

零售业

电子销售点系统的引入使得
收集大量数据和零售组织使ProLifc
使用市场篮子分析

  • 设计店铺布局,以便消费者更容易找到
    经常一起购买
  • 推荐经常一起购买的相关产品,
    “购买此产品的客户也查看了此产品…”
  • 向购买特定产品的客户发送电子邮件
    并提供他们可能感兴趣的产品。
  • 将客户经常在商店购买的产品分组
    植入式广告
  • 设计结合或折扣特定产品的特殊促销活动
  • 优化电子商务网站目录的布局
  • 根据产品需求和更好的产品销售控制库存
    在一起

银行

银行和金融机构使用市场篮子分析来分析信贷
用于欺诈检测和交叉销售保险产品的卡购买,
投资产品(共同基金等)税务准备,退休计划,
财富管理等。它也可用于下一个最佳报价,序列和
季节性优惠。

电信

电信业的特点是波动性高、波动性低。
客户忠诚度,因为其他服务为新客户提供了利润丰厚的服务
提供者。客户使用的特定运营商的服务越多,这个
他/她切换到另一个接线员会更难。市场篮子
分析用于捆绑移动设备,陆上线,电视和互联网服务
客户增加粘性,减少流失。


课程广告


简单实例

在我们继续进行案例研究之前,让我们用一个简单的例子来理解
我们将在其他地方遇到的重要术语
辅导的。在这个例子中,交易包括以下产品:

  • 移动电话
  • 耳机
  • 传输线
  • 电力银行
  • 屏幕保护
  • 活动箱盖
  • 调制解调器/路由器
  • 鼠标
  • 外部硬盘驱动器

步骤

市场篮子分析的两个重要步骤是:

  • 频繁生成项集
  • 规则生成

我们将在案例研究中更详细地讨论这些步骤。

项目集

itemset是客户购买的项目集合。在我们的例子中,
手机和屏幕保护是一种常见的智能设备。它们出现在
五笔交易中的三笔。

前因后果

前因是规则左侧的项目,结果是
规则的右侧。在我们的例子中,手机是先例
结果就是屏幕保护。

支持

支持是先行事件发生的概率。是亲戚
项集的频率。如果小于50%,则关联为
被认为没什么成效。在我们的例子中,支持是指
包括手机和屏幕保护的交易。

信心

置信度是结果与前因同时发生的概率。
它表达了规则的操作效率。在我们的例子中,它是
客户购买屏幕保护装置的概率,前提是
已经买了手机。

电梯

升力比计算规则在寻找结果时的效率,
与随机选择的事务相比。一般来说,升力比
大于1表明了该规则的一些适用性。
一般来说,将项集的支持除以支持的产品
前因后果。现在,让我们了解如何解释电梯。

解释

  • 提升=1:表示手机和屏幕保护之间没有关系
    (即,手机和屏幕保护只有偶然才会同时出现)
  • 提升>1:表示移动设备之间存在积极的关系
    电话和屏幕保护(即,手机和屏幕保护同时出现
    比随机事件更常见)
  • 提升<1:表示移动设备之间存在负面关系
    电话和屏幕保护(即,手机和屏幕保护同时出现
    少于随机)

YouTube广告


数据

两套公共数据集供用户探索和学习市场篮子
分析:

食品杂货数据集可在阿勒斯也要打包。在这
辅导的,我们将使用UCI数据集,因为它与真实世界数据非常相似。
集合使我们有机会重新调整数据的形状并以格式对其进行重新构造
需要的阿勒斯包裹。

数据字典

  • 发票号码
  • 股票代码
  • 描述
  • 发票日期
  • 单价
  • 客户ID
  • 国家

图书馆

图书馆(readxl)图书馆(readr)图书馆(arules)图书馆(arulesviz)图书馆(magrittr)图书馆(dplyr)图书馆(lubridate)图书馆(forcats)图书馆(ggplot2)

预处理

此部分是可选的。你可以跳到读取数据无截面
任何连续性损失。

如上所示,数据集每项有一行。我们创造了一个小小的R
包裹毫巴
用于数据预处理。可以从Github安装,如下所示:

#install.packages(“devtools”)devtools::安装Github(“rsquaredacademy/mbar”)

我们将使用mbar_准备数据()从mbar包重新调整数据的形状,以便
每个事务有一行,列之间的项目不包括
列名称。

图书馆(mbar)mba_数据<-read_excel(“online retail.xlsx”)交易<-mbar_准备_数据(mba_数据,发票,说明)负责人(交易)
###表格:6 x 1114项目_1项_2项_3项_4项_5项_6项_7项_8项_9项_10##
           
            
             
              
              
               
                
                 
                  
                  
                   ##1件白色~白色~奶油色~Knitt~红色w~套装7个玻璃~“”“”“”“”“”“”“”“”“”“”“”“”“”“3个混蛋~Poppy~罂粟花~Feltc~象牙色~Box o~ Box o~ Box o~家庭~Love B~ 4个果酱m~红色c~黄色~Blue~”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“6警报~Alarm~Panda~Stars~infla~vinta~set/2~圆形~spaceb~……还有1104个变量:第11项
                   
                    ,项目12
                    
                     α,εi13
                     
                      ,项目14
                      
                       ,项目15
                       
                        ,项目16
                        
                         α,εi17
                         
                          ,项目18
                          
                           ,项目19
                           
                            ,项目20
                            
                             α,εi21
                             
                              ,项目22
                              
                               ,项目23
                               
                                ,项目24
                                
                                 α,εi25
                                 
                                  ,项目26
                                  
                                   ,项目27
                                   
                                    ,项目28
                                    
                                     (α1)
                                     
                                      ,项目30
                                      
                                       ,项目31
                                       
                                        ,项目32
                                        
                                         α,εiITM33
                                         
                                          ,项目34
                                          
                                           ,项目35
                                           
                                            ,项目36
                                            
                                             α,εi37
                                             
                                              ,项目38
                                              
                                               ,项目39
                                               
                                                ,项目40
                                                
                                                 α1β1
                                                 
                                                  ,项目42
                                                  
                                                   ,项目43
                                                   
                                                    ,项目44
                                                    
                                                     α,εiITEM45
                                                     
                                                      ,项目46
                                                      
                                                       ,项目47
                                                       
                                                        ,项目48
                                                        
                                                         的第二项
                                                         
                                                          ,项目50
                                                          
                                                           ,项目51
                                                           
                                                            ,项目52
                                                            
                                                             α,εiITM53
                                                             
                                                              ,ITMES54
                                                              
                                                               ,ITEM55
                                                               
                                                                ,项目56
                                                                
                                                                 α,εiITM57
                                                                 
                                                                  ,项目58
                                                                  
                                                                   ,项目59
                                                                   
                                                                    ,项目60
                                                                    
                                                                     α1β1
                                                                     
                                                                      ,项目62
                                                                      
                                                                       ,项目63
                                                                       
                                                                        ,项目64
                                                                        
                                                                         ,γ-ε65
                                                                         
                                                                          ,项目66
                                                                          
                                                                           ,项目67
                                                                           
                                                                            ,项目68
                                                                            
                                                                             ,γ-ε
                                                                             
                                                                              ,项目70
                                                                              
                                                                               ,项目1
                                                                               
                                                                                ,项目72
                                                                                
                                                                                 (α1)
                                                                                 
                                                                                  ,项目74
                                                                                  
                                                                                   ,项目75
                                                                                   
                                                                                    ,项目76
                                                                                    
                                                                                     (α)πi77
                                                                                     
                                                                                      ,项目78
                                                                                      
                                                                                       ,项目79
                                                                                       
                                                                                        ,项目80
                                                                                        
                                                                                         α1β1
                                                                                         
                                                                                          ,ITEM852
                                                                                          
                                                                                           ,ITEM863
                                                                                           
                                                                                            ,项目8
                                                                                            
                                                                                             α,εi85
                                                                                             
                                                                                              ,ITEM866
                                                                                              
                                                                                               ,ITMES897
                                                                                               
                                                                                                ,项目88
                                                                                                
                                                                                                 α,εiITEM89.
                                                                                                 
                                                                                                  ,项目90
                                                                                                  
                                                                                                   ,项目91
                                                                                                   
                                                                                                    ,项目92
                                                                                                    
                                                                                                     ,α,ε
                                                                                                     
                                                                                                      ,ITEM949
                                                                                                      
                                                                                                       ,ITEM95
                                                                                                       
                                                                                                        ,项目96
                                                                                                        
                                                                                                         α,γiITME97
                                                                                                         
                                                                                                          ,项目98
                                                                                                          
                                                                                                           ,项目99
                                                                                                           
                                                                                                            ,项目100
                                                                                                            
                                                                                                             ,项目U 101
                                                                                                             
                                                                                                              ,项目102
                                                                                                              
                                                                                                               ,项目103
                                                                                                               
                                                                                                                ,项目104
                                                                                                                
                                                                                                                 ,项目U 105
                                                                                                                 
                                                                                                                  ,项目106
                                                                                                                  
                                                                                                                   ,项目107
                                                                                                                   
                                                                                                                    ,项目108
                                                                                                                    
                                                                                                                     ,项目U 109
                                                                                                                     
                                                                                                                      ,ITEM110
                                                                                                                      
                                                                                                                       ,…  
                                                                                                                       

EDA

在我们使用阿勒斯包裹,让我们探索
数据设置了一点。

人们一天中什么时候购买?

购买时间<-mba_data%>%group_by(invoiced)%>%slice(1)%>%mutate(time_day=hour(invoiced))%>%pull(time_of_day)%>%as.factor()%>%fct_count()购买时间%>%ggplot()+geom_col(aes(x=f,y=n)fill=“blue”)+xlab(“每日小时”)+ylab(“交易”)+ggtitle(“每小时交易分配”)。

平均购买多少件商品?

项目<-mba_data%>%group_by(invoiceno)%>%summary(count=n())%>%pull(count)mean(items)
α〔1〕20.92313
中位数(项目)
α〔1〕10

购买最多的商品

mba_data%>%group_by(description)%>%summary(count=n())%>%arrange(desc(count))
###标签:4212 x 2描述计数##
                                                                                                                                                         
                                                                                                                            
                                                                                                                             ##1个白色挂心T型灯架2369 2个Regency Cakestand 3层2200 3个特大袋红色后视镜2159 4个派对彩旗1727 5个午餐袋红色后视镜1638 6个各色鸟饰品1501 7套3个蛋糕罐餐具室设计1473 8
                                                                                                                             
                                                                                                                              1454 9包72个后遗症蛋糕盒1385 10个午餐袋,黑色头骨。1350…还有4202行
                                                                                                                             
                                                                                                                            
                                                                                                                           

平均订单价值

总收入<-mba_data%>%group_by(invoiceno)%>%summary(order_sum=sum(unitprice))%>%pull(order_sum)%>%sum()总交易<-mba_data%>%group_by(invoiceno)%>%summary(n())%>%nrow()总收入/总交易
α〔1〕96.47892

读取数据

现在是将数据读取到R中的时候了。我们将使用已读。事务()
阿勒斯包裹。无法使用读取数据读取.cv()
Read Cysv()因为它的结构。我们将阅读
交易数据.csv文件,因为它包含我们修改过的数据
在上一步中。我们需要指定以下内容以便
读取数据集:

  • 引号内数据集的名称(单引号或双引号)
  • 数据的格式,如果每行代表一个事务,使用篮子
    如果每一行代表交易中的一个项目,使用单一的
  • 用于分隔事务中的项的分隔符

在我们的数据集中,每行代表一个事务和
事务由一个.

basket_data<-read.transactions(“transaction_data.csv”,format=“篮子”,sep=“,”)篮子数据
##稀疏格式的事务,包含25901个事务(行)和10085个项目(列)

这个已读。事务()函数允许您读取每行中的数据
表示项而不是事务。在那种情况下,这个格式论点
应设置为值单一的以及科尔斯参数应指定
表示事务ID
项目ID.我们也试图用这种方式读取数据,但没有做到。
然而,下面的代码可供其他用户尝试并通知我们
你找到一种方法让它工作,或者找出我们可能犯下的任何错误。

获取数据<-read.transactions(“retail.csv”,format=“单个”,SEP=“,”cols=c(“发票号”,“项目”)

当我们移除九月上面的论点
代码,但结果是摘要()功能与
我们在下一节中看到,即它显示了更多的交易和
项目。

数据摘要

为了快速了解数据,使用摘要().它将返回
以下:

  • 交易记录数
  • 项目数
  • 最常见的项目
  • 项目分配
  • 五号小结
总结(篮子数据)
##稀疏格式的事务作为项矩阵,具有行(元素/项集/事务)和10085列(项),密度为0.001660018最常见的项:白色挂心T灯支架Regency Cakestand 3层1999 1914 Jumbo包红色追溯点派对彩旗1806 1488午餐包红色追溯点(其他)1404 425005元素(项目集/事务)长度分布:尺寸0 12 3 4 5 6 7 9 10 11 12 13 14 1454 4578 1727 1208 942 891 781 715 696 683 612 642 547 530 543 15 16 17 18 19 20 21 22 23 24 25 26 27 29 555 537 479 459 491 428 405 328 311 280 248 261 235 221 233 30 31 32 33 34 35 36 3839 40 41 42 43 44 224 175 174 145 139 122 119 100 117 98 94 102 93 72 45 46 48 49 50 51 52 53 54 55 56 57 58 59 73 74 71 69 68 59 70 49 54 57 42 32 39 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 3440 22 27 30 34 28 21 23 26 14 17 24 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 11 18 14 13 10 16 18 15 10 9 16 13 16 13 7 90 91 92 93 94 95 96 97 98 100 101 102 103 104 8 12 8 8 7 7 7 4 79 5 8 4 5 7 105 106 108 109 110 111 112 113 114 115 116 118 119 2 3 7 4 7 2 7 1 4 7 6 2 120 121 122 123 124 125 126 129 130 131 132 133 134 135 3 5 4 2 5 6 6 2 1 4 3 6 6 6 3 6 3 4 4 4 136 137 138 139 140 141 142 143 144 146 147 148 149 150 3 2 1 3 8 5 3 4 4 6 2 3 1 4 151 152 153 154 155 157 158 158 159 160 162 163 164 167 168 3 2 4 7 3 3 5 2 5 4 5 1 2 1 3 5 169 170 171 172 173 174 175 176177 178 179 180 181 182 183 2 2 4 3 1 3 5 1 2 2 2 2 2 1 2 1 184 185 186 187 189 190 192 193 194 196 197 198 201 202 204##2 1 3 3 2 1 2 7 1 3 1 1 2 232 234 236 238 240 241 244 249 250 252 256 257 258 260 1 2 2 2 1 2 1 2 1 2 1 1 1 1 1 2 261 263 265 266 270 272 281 284 285 298 299 301 303 304 305 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 2 1 2 1 1 1 3 312 314 316 321 326 327 329 332 338 338 339 341 344 348 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 350 360 367 375 391 394 400 402 405 411 419 422 429 1 2 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 11 431 442 447 460 468 471 477 509 514 530 587 627 1114 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 min.第一夸脱。中位数平均第三区最大值。##0.00 2.00 8.00 16.74 20.00 1114.00包括扩展项目信息-示例:1*Boombox iPod Classic 2*USB办公镜球3?

项目频率图

可以使用
项频率图().我们可以指定要绘制的项目的数量,以及
是否Y轴应表示事务的绝对或相对数量。
包括项目。

这个托普参数可用于指定要打印的项目数
以及类型参数可用于指定Y轴代表
项目的绝对/相对频率。

项目频率图(篮子数据,Topn=10,type='绝对')

在下面的图中,这个Y轴表示项目的相对频率
绘制。

项目频率图(篮子数据,Topn=10,type='相对')


应用程序广告


生成规则

最后,对于你们一直在等待的那一部分,规则生成。这个
ApRioRy()函数用于生成规则。我们将首先学习
必须指定不同的输入,稍后再使用它们和
查看规则如何生成更改。

第一个输入是数据集,我们的情况是篮子数据.下一步,我们
将使用参数论点:

  • SUPUP最小值支持对于项目集
  • 康夫最小值信心
  • 麦克伦:先行项可能包括的最大项目数
  • 目标:挖掘的关联类型,即规则

这个参数参数需要几个额外的输入,但要开始,它
足以了解上述内容。所有输入均使用
列表().

对于我们的案例研究,我们将具体说明以下内容:

  • 支持:0.009
  • 信心:0.8
  • 麦克伦:4

记住,挖掘具有非常低值的关联规则支持
导致生成大量规则,导致长期执行
时间和进程最终会耗尽内存。

规则<-apriori(篮子数据,参数=列表(supp=0.009,CONF=0.8,target=“规则”,Max=4)
##Apriori \\\35\\\35\\ \35\\\\\\\\\\\\\\\\\\\\\\\\\\\35\\35; \  \\opt load sort verbose 0.1真真假真2真绝对最小支持计数:233设置项目外观…[0个项目]完成[0.00s]。设置事务…[10085个项目,25901个事务已完成[1.16s]。35;排序和重新编码项目…[508项]完成[0.03s]。正在创建事务树…完成[0.05s]。检查大小为1 2 3 4的子集
##Apriori中的警告(篮子数据,参数=列表(supp=0.009,CONF=α0.8,:挖掘已停止(已达到最大长度)。仅返回长度不超过4_的图案!
##完成[0.06s]。正在写入…[22条规则]完成[0.00s]。创建S4对象…完成[0.02s]。

更改的值SUPUP康夫麦克伦,遵守规则
生成的更改。

规则摘要

一旦规则由ApRioRy(),我们可以使用摘要()
获取一些基本信息,如规则长度分布。

摘要(规则)
##一组22条规则规则长度分布(lhs+rhs):大小最小值。第一夸脱。中位数平均第三区最大值。##2.000 2.000 2.500 2.591 3.000 4.000质量措施总结:支持信心提升计数分钟。:0.009034分钟。:0.8035分钟。:22.59分钟。第1区:0.010453第1区:0.8530第1区:25.02第1区:270.8 \35; 35;  35 35\ \35 \35;  35 \35\35\35\35; 35 3535\\35最大:0.018339最大值最大值1。最大值71.30。:475.0采矿信息:数据传输支持信心篮子数据25901 0.009 0.8

输出来自摘要()但不显示规则。查看
规则,我们必须使用检查().

检查规则

这个检查()函数将显示规则以及:

  • 支持
  • 信心
  • 举起
  • 计数

在你检查规则之前,你可以通过支持来排序,信心还是
电梯。在下面,输出,我们按信心的降序排列规则。
在检查之前。

篮子规则<-排序(规则,通过='信心',递减=真)检验(篮子规则[1:10])
##LHS RHS支持信心提升计数[1]后门=>键FOB 0.009613528 1.0000000 61.23168 249[2]设置3个后点茶=>糖0.014362380 1.0000000 69.62634 372##[3]糖=>设3个倒点茶0.014362380 1.0000000 69.62634 372[4]设3个倒点茶=>咖啡0.014362380 1.0000000 55.94168 372[5]糖=>咖啡0.014362380 1.0000000 55.94168 372##[6]棚=>键FOB 0.0112273696 1.0000000 61.23168 292[7]设3个追溯茶,##糖=>咖啡0.014362380 1.0000000 55.94168 372[8]咖啡,##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[9]咖啡,##糖=>设置3个后斑点茶0.014362380 1.0000000 69.62634 372[10]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.009999614 0.8900344 25.16679 259

冗余和非冗余规则

冗余规则

如果规则具有相同或更高的更一般的规则,则该规则是多余的
自信是存在的。也就是说,一个更具体的规则是多余的,如果它只是
与更一般的规则相比,同样或更不具有预测性。规则更多
一般情况下,如果它具有相同的右侧,但从左侧拆下了一个或多个项目。

例1

在上面的例子中,第一条规则有同样的支持,条件和提升
接下来的两条规则。规则左侧的第二项不是
添加任何值,因此规则是多余的。

例2

在上面的例子中,前两个规则有相同的支持,条件篱笆
电梯。第三条规则只在升力方面有所不同。

例3

在上面的例子中,第一条和第三条规则有相同的支持,
辅助和提升。第二条规则在信心方面是不同的
然后提起。

既然我们已经了解了冗余规则是什么以及如何识别它们,
让我们使用下面的R代码来检查它们。

检查(规则[是冗余的(规则)])
##RHS支持35353535353535\\\35\\[1]设置3个反向点茶\\35\\\\35\35\35\\[1];设置3个反向点茶,糖\35\\\\35\\计数[1]1 55.94168 372##[2]1 69.62634 372[3]1 69.62634 372

非冗余规则

现在让我们来看看非冗余规则。

检查(规则)是冗余的(规则)
##LHS RHS支持信心提升计数[1]Regency茶盘粉色=>Regency茶盘绿色0.009034400 0.8863636 71.29722 234[2]后门=>钥匙FOB 0.009613528 1.0000000 61.23168 249 353535353535\\\35\\35[4]糖\\\35\\\35\\35\35\35\35\\35;[3]\ 0.014362380 0 0 0 0 0.014362380 1.014362380 1 0.1亿0 55.94168 372[6]咖啡咖啡0.014362380 1.0000000 55.94168 372[8]咖啡=>糖0.0143623800.8034557 0.8034557 55.94168 372 35\\\[9]摄政茶盘绿;=>>\\35; \55.8034534557 55.94168 372 \\\\\\[9]\\\\\\125;=>\\123;套/6个红色斑点纸盘0.012084476 0.8087855 44.38211 313[12]套/20红色反光纸巾,##设置/6个红色斑点纸杯=>设置/6个红色斑点纸盘0.009111617 0.8872180 48.68609 236[13]粉红再生茶杯和茶碟,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.018339060 0.8828996 24.96505 475[14]绿色丽晶茶杯和茶托,##粉红丽晶茶杯和茶托=>玫瑰丽晶茶杯和茶托0.018339060 0.8512545 22.59051 475[15]粉红丽晶茶杯和茶托,##Regency Cakestand 3层=>玫瑰Regency茶杯和茶托0.011235087 0.8584071 22.78033 291[16]粉色Regency茶杯和茶托,##Regency Cakestand 3层=>绿色Regency茶杯和茶托##林地夏洛特包=>红色后景色夏洛特包0.010771785 0.8110465 23.65644 279[18]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.009999614 0.8900344 25.16679 259[19]绿色丽晶茶杯和茶托,##粉红丽晶茶杯和茶托,##Regency Cakestand 3层=>玫瑰Regency茶杯和茶托0.009999614 0.8839590 23.45843 259

什么影响了X产品的购买?

到目前为止,我们已经学会了如何生成,检查和删减规则。现在,如何做
我们使用这些规则?为了商业意义,我们需要想出一套
可用于实体商店中产品放置或
作为在线商店或通过电子邮件进行目标营销的建议
战役等为了实现这一目标,我们需要知道两件事:

  • 哪些产品影响了产品X的购买?
  • 产品x影响了哪些采购?

对于我们的案例研究,我们可以将上述问题修改为:

什么影响了购买

查看影响采购的产品,我们将
继续使用ApRioRy()函数,但再添加一个参数,外观.
它限制了项目的外观。因为我们想要
规则只有一个值,,我们将设置RHS论证
.规则的左侧应包括
影响糖的购买,即不包括.我们将使用
这个违约论证并提供价值LHS即所有项目,不包括
默认情况下,糖可以出现在规则的左侧。

  • 违约
  • RHS
糖规则<-apriori(篮子数据,参数=列表(supp=0.009,CONF=0.8)外观=列表(默认值为“lhs”,“糖”
##Apriori \\35\\\\35\\\\\\\\\\\\\\\\\\\\\\\\35\\\\\\\35\\35\\\opt load sort verbose 0.1真真假真2真绝对最小支持计数:233设置项外观…[1项]完成[0.00s]。设置事务…[10085项]25901个事务已完成[1.26s]。35;排序和重新编码项目…[508项]完成[0.03s]。正在创建事务树…完成[0.05s]。检查大小为1 2 3 4的子集完成[0.08s]。正在写入…[3个规则]完成[0.02s]。正在创建S4对象…完成[0.01s]。
规则-糖-排序(糖-规则,by=“自信”,递减=真)检查(规则糖)
##     lhs                             rhs     support    confidence lift    ## [1] {SET 3 RETROSPOT TEA}        => {SUGAR} 0.01436238 1.0000000  69.62634## [2] {COFFEE,SET 3 RETROSPOT TEA} => {SUGAR} 0.01436238 1.0000000  69.62634## [3] {COFFEE}                     => {SUGAR} 0.01436238 0.8034557  55.94168##     count## [1] 372  ## [2] 372  ## [3372

为了我们提到的支持和信心,我们知道以下内容
产品影响采购

  • 咖啡
  • 第三组逆行茶

产品x影响了哪些采购?

现在我们知道哪些产品影响了,让我们
回答第二个问题。

买什么了?影响?

在这种情况下,我们想要在规则的左边
它影响的产品在右手边。我们设置了LHS
论证以及违约论证RHS作为所有产品,
其购买受到应该出现在左边
默认情况下为规则的手部。

糖规则<-apriori(篮子数据,参数=列表(supp=0.009,CONF=0.8)外观=列表(默认值为“rhs”,LHS =“糖”)
##Apriori \\35\\\\35\\\\\\\\\\\\\\\\\\\\\\\\35\\\\\\\35\\35\\\opt load sort verbose 0.1真真假真2真绝对最小支持计数:233设置项外观…[1项]完成[0.00s]。设置事务…[10085项]25901个事务已完成[1.25s]。排序和重新编码项目…[508项]完成[0.01s]。正在创建事务树…完成[0.06s]。检查大小为12的子集完成[0.02s]。正在写入…[2个规则]完成[0.00s]。正在创建S4对象…完成[0.03s]。
规则-糖-排序(糖-规则,by=“自信”,递减=真)检查(规则糖)
##lhs-rhs支持信心提升计数[1]糖=>设置3个后点茶0.01436238 1 69.62634 372[2]糖=>咖啡0.01436238 1 55.94168 372

为了我们提到的支持和信心,我们知道购买
以下产品受

  • 咖啡
  • 第三组逆行茶

最高规则

让我们看看最重要的规则

支持

支持规则<-排序(规则,支持=递减=真)Top_Rules<-Supp_Rules[1:10]Inspect(Top_Rules)
##左舵驾驶支持信心提升计数[1]粉红丽晶茶杯和茶碟,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.01833906 0.8828996 24.96505 475[2]绿色丽晶茶杯和茶托,##红粉再生茶茶杯和茶托;=>玫瑰再生茶杯和茶茶杯0.01833906 0.8512545 22.59051 475 35\[3];设置3个追溯点茶;=>糖0.014362381.000000 69.62634 372 \\[4];糖;=>设置3个追溯点茶0.014362381.000000 1.0 0 0 0 0 0 0 0 0 69.62634 69.62634.62634 6.4 6.634 6.4 6.4 6.634.4.4.4个##[5]设3个反斑点茶\ \35\\35\35;[6]=>>设3个反斑点茶.014362380.8034557 55.94168 372 35\\\\\\\\\\\125\\\125; \\\\\35;[8]咖啡=>糖0.01436238 0.8034557 55.94168 372##糖=>咖啡0.01436238 1.0000000 55.94168 372[10]咖啡,##设置3个反向点茶=>糖0.01436238 1.0000000 69.62634 372

信心

conf_rules<-sort(规则,通过='信心',递减=真)Top_Rules<-Conf_Rules[1:10]Inspect(Top_Rules)
##LHS RHS支持信心提升计数[1]后门=>键FOB 0.009613528 1.0000000 61.23168 249[2]设置3个后点茶=>糖0.014362380 1.0000000 69.62634 372##[3]糖=>设3个倒点茶0.014362380 1.0000000 69.62634 372[4]设3个倒点茶=>咖啡0.014362380 1.0000000 55.94168 372[5]糖=>咖啡0.014362380 1.0000000 55.94168 372##[6]棚=>键FOB 0.0112273696 1.0000000 61.23168 292[7]设3个追溯茶,##糖=>咖啡0.014362380 1.0000000 55.94168 372[8]咖啡,##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[9]咖啡,##糖=>设置3个后斑点茶0.014362380 1.0000000 69.62634 372[10]粉红丽晶茶杯和茶托,##Regency Cakestand 3层,##玫瑰丽晶茶杯和茶托=>绿色丽晶茶杯和茶托0.009999614 0.8900344 25.16679 259

电梯

提升规则<-排序(规则,乘电梯,递减=真)顶部规则<-提升规则[1:10]检查(顶部规则)
##LHS RHS支持信心提升计数[1]Regency茶盘粉色=>Regency茶盘绿色0.009034400 0.8863636 71.29722 234[2]设置3个追溯茶=>糖0.014362380 1.0000000 69.62634 372[3]糖=>设置3个追溯茶现货茶0.014362380 1.0000000 69.62634 372[4]咖啡,##设置3个反向点茶=>糖0.014362380 1.0000000 69.62634 372[5]咖啡,##糖=> [6]=>键FOB.009613528 1.0000000 61.23168 249 35\35\35\35\35\35\35\35\.014362380 1.0000000 1.0000000 69.62636 69.62634 372 \\\35; \\ \123;摄政茶盘绿=>摄政茶盘玫瑰0.010347091 0.8322981 55.99313 268[9]设置3个追溯点茶=>咖啡0.014362380 1.0000000 55.94168 372[10]咖啡=>设置3个追溯点茶0.014362380 0.8034557 55.94168 372

包装广告


可视化

为了使规则形象化,作者阿勒斯创造了一个伴侣
包裹,阿鲁斯维兹.它提供了几个可视化规则的选项
生成的ApRioRy().

散点图

我们可以使用默认值标号()创建散点图的方法。它将阴谋
上的支持X轴,对…的信心Y轴和电梯
由点颜色的透明度/α表示。

绘图(篮子规则)

网络图

我们可以使用方法论证并提供
价值图表.您可以在下面的图中看到规则的方向性。
例如,买的人也买钥匙离岸价同样地,人
谁买后门也买钥匙离岸价.很难识别
当我们试图绘制太多规则时规则的方向性。
这个方法参数也接受其他几个值。

情节(顶规则)方法='graph')

要记住的事情……

使用升降机时规则的方向性丢失

使用电梯时规则的方向性丢失。在下面的示例中,
以下两条规则的电梯相同:

  • 手机=>屏幕保护
  • 屏幕保护=>手机

很明显,无论规则的方向如何,电梯都是一样的。

信心作为衡量标准可能会产生误导。

如果你看下面的例子,对第二条规则的信心,
屏幕保护=>手机,大于第一条规则,
手机=>屏幕保护.这并不意味着我们可以推荐
向购买屏幕保护的客户提供的移动电话。这很重要
以确保我们不使用规则仅仅因为它们具有很高的信心
与他们有关联。

总结

  • 市场篮分析是一种无监督的数据挖掘技术
  • 发现经常一起购买的产品
  • 创建if-then方案规则
  • 成本效益高的,具有洞察力和可操作性
  • 关联规则挖掘在多个行业中都有应用
  • 使用升降机时规则的方向性丢失
  • 信心作为衡量标准可能会产生误导。

当你试图去做的时候,你对领域/业务的了解非常重要。
使用市场篮子分析。特别是当您尝试选择或
入围规则并将其用于商店中的产品放置或
在线推荐产品。批判性地回顾
实施前的规则。

留下评论作者,请关注他们博客上的链接和评论: rsquared学院博客.

188bet appR博客提供 每日电子邮件更新金宝搏网址 R新闻与 教程关于以下主题: 数据科学大数据, r作业,可视化(可视化) GGPROTT2箱形图地图动画)程序设计(程序) 演播室斯威夫特乳胶SQL日食吉特哈多普刮网)统计 回归主成分分析时间序列交易还有更多…



如果你走这么远,为什么不 订阅更新 从站点?选择您的口味: 电子邮件推特1188bet app,或 脸谱网

注释已关闭。

千万不要错过更新!
订阅R-Bloggers188bet app接收
最新R帖子的电子邮件。
(您将不再看到此消息。)

单击此处关闭(此弹出窗口将不再出现)