关联分析——Apriori算法

一、引入

世间万物都是有联系的,这种联系让这个世界变得丰富多彩而又生动有趣。关联分析的目的就是要寻找事物之间的联系规律,发现它们之间的关联关系。关联分析是一种简单、实用的分析技术,就是发现存在于大量数据集中的关联性或相关性,从而描述了一个事物中某些属性同时出现的规律和模式。

关联分析主要是采用关联规则技术广泛应用于众多领域,例如:

1)  帮助企业经营者发现顾客的购买偏好,准确定位顾客特征,给顾客提供购买建议;

2)  帮助企业经营者制定合理的交叉销售方案,促进产品销售;

3)  帮助分析顾客消费的周期性规律,合理规划库存和进货;

4)  帮助分析顾客购买商品的相关性和连带购买规律,合理摆放货架,方便顾客选取。

二、算法

关联关系主要分为两种:以简单关联规则为技术的简单关联关系和以序列关联规则为技术的序列关联关系,前者讨论的算法主要是Apriori和Carma算法,后者主要运用Sequence算法。

三、Apriori算法应用案例

3.1 数据背景

“餐饮数据”包含的数据项有:部门id、部门、辅助分类、品种编号、品种名称、日期、台号、单价、销售量、赠送数量、取消数量、销售金额、赠送金额、取消金额、金额百分比、成本等16个字段,共18539个记录。

3.2 分析目标

目标1:设置合适的置信度和支持度阈值,对数据进行关联规则分析,挖掘关联规则

目标2:分析各种菜品的关联性

目标3:利用Web图展示关联规则

3.3 数据处理

若想基于“餐饮数据”实现目标,易发现给出的数据乱而散,我们有必要先对数据进行“加工”。

首先,可以先剔除多余(无关)的字段,例如:辅助分类、赠送数量、取消数量、赠送金额、取消金额、金额百分比、成本,白饭与菜品的选择毫无联系,也可以把“白饭”的数据删除;

其次,依次根据日期、台号排序,由此可得一天内不同桌子的点菜情况;

然后,对数据进行分类汇总,对台号分类,实现品种名称的计数,从而选择“品种名称”介于5-7之间且茶位数量在10以内的项。(原因:仅仅根据日期和台号不能区别每组顾客的菜品,而且当所点菜品太多或太少,菜品间的关系相对很模糊,所以选取品种少的数据从而默认日期和台号都相同的为一个“购物篮”,即会同时下单的菜品;之所以选择茶位数在10以内,是因为尽可能地减少同一个台号不同顾客带来的误差)

最后,选取满足条件的数据进行建模,在建模前有必要对数据进行转换,以菜品为字段,每个“购物篮”转换为0-1组合。(此步为人工操作,过于繁琐)

3.4 关联模型

1)一个理想的简单关联规则应该具有较高的置信度和较高支持度,当然阈值的设置也要合理,并不是越高越好。如果阈值设置太小,生成规则的可信度就不高;阈值设置太大,可能无法找到满足阈值条件的规则。在本次案例中,指定前项最小支持度为10%,规则最小置信度为60%

2)设置好阈值后,对于“前项”、“后项”在这里都是选取所有菜品字段。

3)运行Apriori关联模型

3.5 关联结果


3.6 结果分析

本例产生了7个关联规则:

Rule 1:翡翠蒸香茜饺->菜心(S=7.69%,C=75%)

Rule 6:乐善真味鸡->花生莲藕猪手煲(S=15.39%,C=75%)

Rule 7:火山芋头扣肉煲->菜心(S=15.39%,C=75%)

Rule 5:凉瓜焖三文鱼骨->花生莲藕猪手煲(S=10.26%,C=66.67%)

Rule 2:金牌烧鹅->花生莲藕猪手煲(S=7.69%,C=60%)

Rule 3:上汤辣椒叶>菜心(S=7.69%,C=60%)

Rule 4:是日靓汤->花生莲藕猪手煲(S=7.69%,C=60%)

所以,rule 1、6、7的置信度和提升度是比较高的,即翡翠蒸香茜饺和菜心,乐善真味鸡和花生莲藕猪手煲,火山芋头扣肉煲和菜心三者是最可能连带消费的菜品,可以根据顾客点菜情况适当推荐。


猜你喜欢

转载自blog.csdn.net/x_dmword/article/details/80677005
今日推荐