3.FP-growth算法关联规则分析算法
3.1 FP-growth算法框图
首先我将FP-growth算法框图简化过程得到了,下面的表格——FP-tree的构建方法表。
表3-1-2 FP-tree的构建方法表
算法 构建FP-tree |
输入:数据集D,支持度阈值minimum_support |
输出:FP-tree |
|
|
|
|
|
这里我采用的是我们小组,一起完成寻找靠谱对象的关联分析的项目的代码。我就由这个代码绘制FP-growth算法框图。通过算法框图描述代码实现的具体流程。(代码在我的下载资源里)
图3-1-1 FP-growth算法框图
3.2算例分析
3.2.1数据集
- 数据来源:
https://www.kaggle.com/datasets/rodsaldanha/arketing-campaign
Kaggle是由联合创始人、首席执行官安东尼·高德布卢姆(Anthony Goldbloom)2010年在墨尔本创立的,主要为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。该平台已经吸引了80万名数据科学家的关注,这些用户资源或许正是吸引谷歌的主要因素。
- 数据集名称:
Marketing Campaign——营销活动
- 数据集内容:
主要是包括客户的个人特征与营销活动中的选择。
数据集内容为:
表3-2-1数据集内容
名称 | 解释 |
AcceptedCmp1 | 如果客户在第一次活动中接受报价,则为1,否则为0 |
AcceptedCmp2 | 如果客户在第二次活动中接受报价,则为0 |
AcceptedCmp3 | 如果客户在第三次活动中接受报价,则为1,否则为0 |
AcceptedCmp4 | 如果客户在第四次活动中接受报价,则为1,否则为0 |
AcceptedCmp5 | 如果客户在第五次活动中接受报价,则为1,否则为0 |
Response (target) | 如果客户在上次活动中接受了报价,则为1,否则为0 |
Complain | 1如果客户在过去2年内投诉 |
DtCustomer | 客户与公司登记的日期 |
Education | 客户的教育程度 |
Marital | 客户婚姻状况 |
Kidhome | 客户家中小孩的数目 |
Teenhome | 客户家中的青少年人数 |
Income | 客户的家庭年收入 |
MntFishProducts | 过去两年花在鱼类产品上的金额 |
MntMeatProducts | 过去两年在肉类产品上的花费 |
MntFruits | 过去两年在水果产品上的花费 |
MntSweetProducts | 过去两年花在甜食上的金额 |
MntWines | 过去两年在葡萄酒产品上的花费 |
MntGoldProds | 过去两年在黄金产品上的花费 |
NumDealsPurchases | 打折购买的数量 |
NumCatalogPurchases | 使用目录进行购买的数量 |
NumStorePurchases | 直接在商店购买的数量 |
NumWebPurchases | 通过公司网站购买的数量 |
NumWebVisitsMonth | 上个月公司网站的访问次数 |
Recency | 距离上次购买的天数 |
- 选此数据集的目的:
便是从关联规则视角出发,以使公司能够最大化下一次营销活动的利润为立足点,建立了基于FP-Growth的营销策略关联规则分析算法,并从宏观角度提出将营销活动与客户的个人特征与选择相结合的最大化下一次营销活动的利润营销策略。
3.2.2数据预处理
FP-Growth算法只能处理布尔类型的数据,因此在进行数据分析之前,首先要进行预处理。
- 数据删除
本案例收集到的含有年限,消费数额等不好转换为布尔类型的数据项目,删除将不会影响其他数据分析的结果,因此对部分数据样本进行了删除,保留了部分需要继续挖掘的数据。
- 数据转换
数据集中既有数值型数据又有字符型数据,为了转换成适合挖掘的形式,需要对属性取值进行处理。本案例中绝大多数特征的取值范围根据顾客在第几次活动中接受报价,则为1,否则为0,对于这类数据直接就是二值化,AcceptCmp2如果客户在第二次活动中接受报价这一块,当特征值为1或0时,赋值为AcceptCmp2- 1否则为AcceptCmp2- 0。最终生成的新数据集,取值均为名称+0或者名称+1。这样在最后的生成数据时得到分类好的数据。
3.3 数据结果分析
进过代码的运行后可以得到如图所示的结果:
图3-3-1 代码运行后的结果图
有以下三个经典的标准来衡量判断商品之间的关联程度:支持度、置信度或提升度。对上面的运行的到的数据,再次处理得到有关关联规则的持度、置信度或提升度,并整理成表格。以下两个表示结果表格。
支持度:
表3-3-2支持度结果
名称 | 数目 | 支持度 |
AcceptCmp1 - 0 | 2096 | 0.935714286 |
AcceptCmp2 - 0 | 2210 | 0.986607143 |
AcceptCmp3 - 0 | 2077 | 0.927232143 |
AcceptCmp4 - 0 | 2073 | 0.925446429 |
AcceptCmp5 - 0 | 2076 | 0.926785714 |
Complain-0 | 2219 | 0.990625 |
Respons-0 | 1906 | 0.850892857 |
Kidhome0 | 1293 | 0.577232143 |
Graduation1 | 1127 | 0.503125 |
置信度:因为购买了A所以购买了B的概率 B/A表示
提升度:
表3-3-3置信度与提升度结果
名称 | 数目 | 置信度 | 提升度 |
AcceptCmp2 - 0/AcceptCmp1 - 0 | 2079 | 0.991889313 | 1.005361152 |
AcceptCmp3 - 0/AcceptCmp1 - 0 | 1957 | 0.933683206 | 1.006957489 |
AcceptCmp4 - 0/AcceptCmp1 - 0 | 1976 | 0.942748092 | 1.018695509 |
AcceptCmp5 - 0/AcceptCmp1 - 0 | 2000 | 0.954198473 | 1.029579108 |
Respons-0/AcceptCmp1 - 0 | 1841 | 0.878339695 | 1.032256514 |
Kidhome0/AcceptCmp1 - 0 | 1160 | 0.553435115 | 0.958773903 |
Graduation/AcceptCmp1 - 0 | 1045 | 0.498568702 | 0.990944005 |
Respons-0/Kidhome0 | 1071 | 0.828306265 | 0.973455422 |
Kidhome0/Complain-0 | 1285 | 0.57908968 | 1.003218007 |
Graduation1/Complain-0 | 1113 | 0.501577287 | 0.9969238 |
AcceptCmp1 - 0/Complain-0 | 2075 | 0.935105904 | 0.999349821 |
AcceptCmp2 - 0/Complain-0 | 2189 | 0.986480397 | 0.999871533 |
AcceptCmp3 - 0/Complain-0 | 2058 | 0.927444795 | 1.000229341 |
AcceptCmp4 - 0/Complain-0 | 2052 | 0.924740874 | 0.999237607 |
AcceptCmp5 - 0/Complain-0 | 2056 | 0.926543488 | 0.999738638 |
其中支持度表示某个项集出现的频率,也就是包含该项集的交易数与总交易数的比例。
置信度示当A项出现时B项同时出现的频率,记作{A→B}。换言之,置信度指同时包含A项和B项的交易数与包含A项的交易数之比。
提升度指A项和B项一同出现的频率,但同时要考虑这两项各自出现的频率。提升度反映了关联规则中的A与B的相关性,提升度>1且越高表明正相关性越高,提升度<1且越低表明负相关性越高,提升度=1表明没有相关性。负值,商品之间具有相互排斥的作用。
最小支持度都在0.5-1之间;最小置信度:可能是0.5到1之间;表示使用关联规则可以提升的倍数,是置信度与期望置信度的比值,提升度至少要大于1。
挑选支持度,置信度在0.5-1的,提升度大于1的部分。这样就达到了强关联规则,以下是筛选后满足条件的结果。数据进过筛选后使挖掘过程的指向性得到明显提高, 很好的控制了挖掘的数据规模, 从而保证了在生成的关联规则数目减少的同时更加契合客户的意愿。
表3-3-4 筛选后的结果
名称 | 数目 | 置信度 | 提升度 |
AcceptCmp2 - 0/AcceptCmp1 - 0 | 2079 | 0.991889313 | 1.005361152 |
AcceptCmp3 - 0/AcceptCmp1 - 0 | 1957 | 0.933683206 | 1.006957489 |
AcceptCmp4 - 0/AcceptCmp1 - 0 | 1976 | 0.942748092 | 1.018695509 |
AcceptCmp5 - 0/AcceptCmp1 - 0 | 2000 | 0.954198473 | 1.029579108 |
Kidhome0/Complain-0 | 1285 | 0.57908968 | 1.003218007 |
AcceptCmp3 - 0/Complain-0 | 2058 | 0.927444795 | 1.000229341 |
结果解释:
正如前面强关联规则所说的,大于或等于最小支持度阈值和最小置信度阈值的规则叫做强关联规则。关联分析的最终目标就是要找出强关联规则。我已经在筛选时就选取了挑选支持度,置信度在0.5-1的,提升度大于1的部分,这样筛选后的结果就均达到了强关联规则。
AcceptCmp2 - 0/AcceptCmp1 - 0:可以看到在如果客户在第一次活动中未接受报价,客户在第二次活动中未接受报价的置信度与提升度为0.991889313与1.005361152。意思是已经第一次活动中未接受报价,再在第二次活动中未接受报价的可能性为99.19%,并且两件事同时出现相关性为1.0054,是正相关的。
如果客户在第一次活动中未接受报价,客户在第三/四/五次活动中未接受报价的结果解释和客户在第二次活动中未接受报价的解释相似。
Kidhome0/Complain-0:如果客户在过去2年内没投诉,客户家中客户家中小孩的数目为0的置信度和提升度为0.57908968和1.003218007。意思是如果客户在过去2年内没投诉,客户家中没有小孩的可能性为57.91%,并且两件事同时出现相关性为1.0032,是正相关的。
AcceptCmp3 - 0/Complain-0:如果客户在过去2年内没投诉,客户在第三次活动中未接受报价的置信度和提升度为0.927444795和1.000229341。意思是如果客户在过去2年内没投诉,客户在第三次活动中未接受报价的可能性为92.74%,并且两件事同时出现相关性为1.0002,是正相关的。
结论与内在原因的分析:
从上述运行结果来看, 可以得到下面的潜在的信息:
客户在第一/二/三/四/五次活动中是否未接受报价之间存在一些联系, 它们是相互影响的, 是否接收报价可以看出来他们是不是对营销活动有兴趣,继续接收报价则是愿意继续了解活动,有继续购买的意愿。有些营销活动的好坏直接影响另一些营销活动的好坏,几次的报价上进行预测,预测到不同商品的价格会被多少的客户所接受。
还可以分析得出如果客户在过去2年内没投诉,极有可能该顾客没有孩子,它们是相互影响的,。绝大多数(99.06%)的客户过去2年内没投诉,这些没投诉的客户说明对商场等营销活动是满意的,也是大概率的过去以及以后会经常关顾该地的客户,所以要注意留住这些客户。而他们没有孩子也能说明可能因为没有孩子对商场的营销活动的要求不算多。但是有孩子的也不算少,在有孩子以后有可能会对商场进行投诉,所以在商场中也要主要留意孩子的设施建设,对孩子的需要的商品进行进一步的完善,这样更有可能使顾客满意而不投诉,提高营销活动的效率。
4. 结论
从上面得到的结论可以看出来,营销模型的建立可以通过基于FP-Growth的营销策略关联规则分析算法设计与实现,主要目标是得到不同顾客之间进行关联,并挖掘二者之间联系的分析方法,使公司能够最大化下一次营销活动的利润。
有些营销活动的好坏直接影响另一些营销活动的好坏,顾客是否接收报价反映出营销活动的好坏是否值得顾客继续了解与购买,通过这个部分的结论也可以预测谁将接收产品或服务的报价;还可以分析得出如果客户在过去2年内没投诉,极有可能该顾客没有孩子,它们是相互影响的,但是有孩子的也不算少,在有孩子以后有可能会对商场进行投诉,对孩子在商场中的分量占比也要更加在意,这样更有可能使顾客满意而不投诉,提高营销活动的效率。
在企业实施商品的营销策略过程中, 往往以利润为先导, 把关注焦点集中在那些销售情况较好而价格又相对比较高的商品上面。因此, 企业销售策略可以是: 针对具有上述特征的商品, 在几次的报价上进行预测,预测到不同商品的价格会被多少的客户所接受。还可以找出和这类商品一起被频繁购买的其它价格比较低的商品, 以便在今后的销售中对这些商品进行捆绑销售。同时在有关小孩的部分加强重视,以免有小孩的顾客因此而投诉,进行营销策略的调整,才能充分利用大数据的优势,以此提高客户满意度并且获得更多的利润。
本文根据数据挖掘的特点, 结合组合营销策略实施中具体不同顾客之间进行关联, 提出了一种基于FP-Growth的营销策略关联规则分析算法设计与实现。 挖掘结果表明, 挖掘生成的关联规则结合实际, 信息指向性也更加明确, 为企业实施营销策略提供了科学的依据,实验分析表明, FP- growth 算法能在短时间内找到用户感兴趣的规则, 算法使公司能够最大化预测下一次营销活动的利润。
关联规则揭示项集间有趣的相联关系,可广泛应用于市场营销、医学、金融、生物、电信、农业等领域,是数据挖掘的重要研究课题。自1993年R.Agrawal,R.Srikant首次提出该问题以来,已出现了许多关联规则挖掘算法。 其中最经典的关联规则挖掘算法是Apriori算法和FP-growth算法,而FP-growth算法是当前挖掘频繁项集算法中应用最广,并且不需要产生候选项集的关联规则挖掘算法。但是FP-growth算法并不能有效的挖掘大型数据库,并且时间和空间复杂度较高。当然作为 FP- growth 算法也可以适用于商场,企业等其它方面的工作, 比如人事部门的人事管理、培养, 市场营销项目的分析等。
数据挖掘是一个多学科交叉融合而形成的新兴学科, 已经被广泛应用于市场营销、医药业、 电信业、金融业、互联网、语言识别和知识管理等 方面。数据挖掘已经在多个领域取得了令人满意的应用效果, 而在教育领域的应用还较少。高等学校在多年的教学和管理工作中积累了大量的 数据, 目前这些数据还未得到有效利用。通过有 效的关联分析, 可以挖掘出很多意想不到的知识。数据挖掘也能较客观地反映高校管理中存在的问题, 为决策提供重要依据
具体应用场景:
大数据时代的超市营销是数字化、个性化、差异化、精准化的,中小型超市想要在大数据环境下良性发展,必须以数据的思维,利用数据挖掘相关技术来进行营销策略的调整,才能充分利用大数据的优势,提高客户满意度并且获得更多的利润。 随着社会经济和购买力的不断发展,商场也面临着急剧膨胀的购买记录,如何通过研究购买记录来获取购买规律来提高收益也便成为了研究热点。
通过利用超市营销系统对企业,商场,超市等地方的销售数据进行分析,能够统计商品的销售情况,找出商品间存在的内在关联,预测新商品是否畅销,该系统为超市管理者提供了较为科学的决策依据。
图4-1 示例超市营销系统的数据挖掘模型
应用可以以超市为例:
构建超市营销系统的数据挖掘模型,如上图所示,首先根据营销系统的营销策略确立数据仓库的主题,例如库存管理主题、销售管理主题、营销管理主题等等,然后从各个收银系统和库存数据库中抽取相关数据,使用Web Service和XML 技术进行数据的转换集成,利用OLAP服务器构建数据仓库, 建立星型数据模型,接着应用数据挖掘相关算法,尤其是本选题中基于FP-Growth的营销策略关联规则分析算法设计与实现,发现海量销售、库存数据中存在的潜在关联模式,最后在系统相应的子模块上呈现挖掘的信息,为管理者进行营销策略的调整提供依据。
所有资料在这里;含代码,处理过数据文件,结果文件整理,以及详细报告近一万字。这是我的期末大报告,完全是自己写的,可以按需下载。其中关于实现的过程描述方法详实,步骤详细,形式多样。数据来自Kaggle。含有1. 绪论,2. 相关理论与技术,3. FP-growth算法关联规则分析算法,4. 结论5. 课程体会
(71条消息) 数据挖掘大报告基于FP-Growth的营销策略关联规则分析算法设计与实现-数据挖掘文档类资源-CSDN文库