【某航】关联规则分析CatalogCrossSell数据集——数据挖掘导论

代码链接:github代码

1.任务目标

针对所提供的CatalogCrossSell.xls数据集,要求对该数据及进行关联规则分析,并且解释生成的结果,评价指标包括lift,ratio, confidence, support等,并且最后根据这些结果为Exeter做出合理建议:

2.分析数据集:

给定的数据包含两个sheet,第一个为解释文档,第二个为真实数据集,该数据集包含4998行数据,第一列是用户编号,后面分别为Clothing,
House wares, Health, Automotive, Personal electronics, Computers, Garden, Novelty gift, Jewelry一共9列,主要利用这些列的数据进行关联规则分析。

3.数据预处理:

删除无关解释文档的sheet,删除文件中的空列,由于用户编号实际没有较大用处,在这里删除用户编号,并且为其重新编号0-4997。上述操作均在Python中进行。

在这里插入图片描述

4.建立关联规则方法进行分析:

(调用mlxtend进行数据分析,代码见附件CatalogCrossSell.ipynb,每一步处理后的数据文件见附件)

  1. Apriori 方法:

设置min_support=0.1, 它指的是关联规则占总的关联规则的最小比例,如果小于的直接忽略。
最后得到相应的关联规则及其它对应的支持度,共36条(apr_result.csv)。
在这里插入图片描述
对于以上给出的规则组合,生成关联规则,原本设置显示置信度大于0.7的关联规则展示如下(apr_con_asso.csv):

在这里插入图片描述
一共23条规则结果满足要求,第一列是antecedents,事先购买的产品类型;第二列是consequents,为给出的结果;后面几列为计算得到的相关支持度,置信度,lift等数据,具体计算如下:

  • support(A->C) = support(A+C) [aka ‘support’], range: [0, 1]
  • confidence(A->C) = support(A+C) / support(A), range: [0, 1]
  • lift(A->C) = confidence(A->C) / support©, range: [0, inf]
  • leverage(A->C) = support(A->C) - support(A)*support©, range: [-1, 1]
  • conviction = [1 - support©] / [1 - confidence(A->C)], range: [0, inf]

如图给出的是置信度大于0.7的结果,可以看到推荐的结果大量集中在‘Health Products Division’,说明给出的数据集中大部分用户都选择了这一款,如果按照这种推荐方法,不论事先购买了哪种产品,都会选择这一类产品,推荐意义不大。
因此后面我们选择采用lift参数做过滤,设置lift>1.4的规则结果展示出来,有以下结果(apr_lift_asso.csv):

在这里插入图片描述
共52条结果,该结果的分布比较均衡,在各种情况下都有相应的推荐。例如对第30条结果规则,如果用户事先购买了’Health Products Division’, ‘Novelty Gift Division’, ‘Personal Electronics Division’,则推荐该用户购买’Housewares Division’,该方法的支持度为0.108,置信度0.638,lift为1.62,推荐的结果较为合理。

  1. FP-growth 方法

设置min_support=0.1,最后得到相应的关联规则及其它对应的支持度,共36条(fpg_result.csv)。

在这里插入图片描述
对于以上给出的规则组合,生成关联规则,原本设置显示置信度大于0.7的关联规则展示如下(fpg_con_asso.csv):

在这里插入图片描述
一共23条规则结果满足要求,跟刚才方法结果一样,推荐的结果大量集中在‘Health Products Division’,推荐意义不大。
后面我们仍然选择采用lift参数做过滤,设置lift>1.4的规则结果展示出来,有以下结果(fpg_lift_asso.csv):
在这里插入图片描述
共53条结果,该结果的分布比较均衡,在各种情况下都有相应的推荐。例如对第47条结果规则,如果用户事先购买’Jewelry Division’, ‘Health Products Division’, ‘Personal Electronics Division’,则推荐该用户购买’Housewares Division’,该方法的支持度为0.132,置信度0.669,lift为1.699,推荐的结果较为合理。

通过两种方法的对比分析,可以看到有一些推荐结果会同时出现,例如Apriori方法的第30条数据和FP-growth方法的第20条数据。其中,相对来说,很难直接判断两种方法的好坏,FP-growth方法的运行速度会高于Apriori方法,但本题数据量不是特别大,差异也不是很明显。由于都是采用关联规则推荐,推荐的结果两者有重叠的部分,也有一些微小的差别,但总体来说,都能够基本符合预期结果,为商家提供有效建议。

# 代码片段
import numpy as np
import pandas as pd
from mlxtend.frequent_patterns import apriori, fpgrowth
from mlxtend.frequent_patterns import association_rules

data = pd.read_excel('CatalogCrossSell.xls')
# data = data.set_index('Customer Number')
data.drop(columns = 'Customer Number', inplace = True)

apr_result = apriori(data, min_support = 0.1, use_colnames = True)

代码链接:github代码

如果感觉对你有所帮助,不妨点个赞,关注一波,激励博主持续更新!

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
数据可视化是数据科学领域中重要的一环,它通过图表、图形和其他可视化工具将数据呈现出来,以便能够更好地理解和分析数据。 首先,数据可视化可以帮助我们更好地理解数据。通过将数据可视化成图表或图像,我们可以直观地看到数据的分布、趋势和模式。这些可视化结果可以让我们更容易地发现数据中的有意义的信息,并且帮助我们深入理解数据所传达的含义。 其次,数据可视化还可以帮助我们发现数据中的异常值。通过对数据进行可视化,我们可以快速地发现与众不同的数据点或异常模式。这些异常值可能是我们的数据收集过程中的错误,或者是数据背后隐藏的重要信息。通过识别和处理这些异常值,我们可以提高数据质量和分析的准确性。 此外,数据可视化也有助于数据的传达和沟通。在现实世界中,不同背景的人对于数据的理解能力和统计分析的能力有所差异。数据可视化可以帮助我们以更直观的方式向其他人传达数据,使得他们更容易理解和接受数据分析结果。通过合适的图表和图形,我们可以有效地解释数据背后的趋势和关系,并与其他人进行更有意义的讨论和决策。 综上所述,数据可视化在数据科学中起着重要的作用。它不仅帮助我们更好地理解和分析数据,发现异常值,还能够向他人有效传达和沟通数据。因此,在进行数据科学工作时,数据可视化是必不可少的一项技能和工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值