牛奶搭配销售关联算法

简介:        在数据挖掘过程中,由于数据存在分散性和偶然性,因而在底层的数据关联上很难准确挖掘出强关联规则,进而也很难为我们决策提供参考。通常的解决的方案通常是引入概念层次,在较高的层次上,我们就可以通过“支持度和置信度”的框架来挖掘多层关联规则。
0.jpg

       在数据挖掘过程中,由于数据存在分散性和偶然性,因而在底层的数据关联上很难准确挖掘出强关联规则,进而也很难为我们决策提供参考。通常的解决的方案通常是引入概念层次,在较高的层次上,我们就可以通过“支持度和置信度”的框架来挖掘多层关联规则。

从一家公司的销售记录中我们找到以下8条消费记录,并以3作为最小支持度,也就是说出现频率在3次以下的记录是被我们所忽略的。

1.jpg

所有满足最小支持度3的1项频集如下,其中的支持度是指该产品在整个数据集中出现的次数。比如牛奶出现了5次,而冰淇淋出现了3次。

2.jpg

递归执行,所有满足最小支持度3的2项频集如下,这其中出现最多的频集是{牛奶,面包}和{面包,果酱},各自出现了4次。

3.jpg

再次递归执行,所有满足最小支持度3的3项频集只剩下一条:

4.jpg

那么{牛奶,果酱,面包}就是我们要的满足最小支持度3的3项频集,也就是说牛奶、果酱和面包这三个商品是最经常被一起购买的。


概念层次的数据挖掘

在研究挖掘关联规则的过程中,许多学者发现在实际应用中,对于很多应用来说,由于数据分布的分散性,数据比较少,所以很难在数据最细节的层次上发现一些强关联规则。要想在原始的概念层次上发现强的(strong)和有意义的(interesting)关联规则是比较困难的,因为好多项集往往没有足够的支持数。

当我们引入概念层次后,就可以在较高的层次上进行挖掘。虽然较高层次上得出的规则可能是更普通的信息,但是对于一个用户来说是普通的信息,对于另一个用户却未必如此。所以数据挖掘应该提供这样一种在多个层次上进行挖掘的功能。


5.jpg


概念层次在要挖掘的数据库中经常是存在的,比如在一个超市中会存在这样的概念层次:蒙牛牌牛奶是牛奶,伊利牌牛奶是牛奶,王子牌饼干是饼干,康师傅牌饼干是饼干等。

如果我们只是在数据基本层发掘关系,{蒙牛牌牛奶,王子牌饼干},{蒙牛牌牛奶,康师傅牌饼干},{伊利牌牛奶,王子牌饼干},{伊利牌牛奶,康师傅牌饼干}都不符合最小支持度。不过如果我们上升一个层级,会发现{牛奶,饼干} 的关联规则是有一定支持度的。

我们称高层次的项是低层次项的父亲层次(parent),这种概念层次关系通常用一个DAG(directed acyclic graph,有向无环图)来表示。所谓有向无环图是指,任意一条边有方向,且不存在环路的图。这样我们就可以在较高的概念层次上发现关联规则。


支持度的设置策略

根据规则中涉及的层次和多层关联的规则,我们可以把关联规则分为同层关联规则和层间关联规则。多层关联规则的挖掘基本上可以沿用“支持度—置信度”的框架。不过,在支持度设置的问题上有一些要考虑的东西。

同层关联规则可以采用两种支持度策略:

统一的最小支持度。对于不同的层次,都使用同一个最小支持度。这样对于用户和算法实现来说都比较容易,但是弊端也是显而易见的。

递减的最小支持度。每个层次都有不同的最小支持度,较低层次的最小支持度相对较小。同时还可以利用上层挖掘得到的信息进行一些过滤的工作。层间关联规则考虑最小支持度的时候,应该根据较低层次的最小支持度来定。

以上我们讨论的基本上都是同一个字段的值之间的关系,比如用户购买的物品。换句话说就是在单维或者叫维内的关联规则,这些规则很多都是在交易数据库中挖掘的。

但是对于实际应用来说,多维的关联规则可能是更加有价值的。

同时,在挖掘维间关联规则和混合维关联规则的时候,还要考虑不同的字段种类,是分类型数据还是数值型数据等等。


原文发布时间为:2013-09-18


本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
机器学习/深度学习 算法
m基于GA遗传优化的GRNN广义回归神经网络销售数据预测算法matlab仿真
m基于GA遗传优化的GRNN广义回归神经网络销售数据预测算法matlab仿真
182 0
m基于GA遗传优化的GRNN广义回归神经网络销售数据预测算法matlab仿真
|
3天前
|
算法
基于改进粒子群算法的混合储能系统容量优化matlab
基于改进粒子群算法的混合储能系统容量优化matlab
|
1天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
1天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
11 1
|
3天前
|
算法 调度
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
|
3天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
3天前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
3天前
|
算法
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于有序抖动块截断编码的水印嵌入和提取算法matlab仿真
这是一个关于数字图像水印嵌入的算法介绍。使用MATLAB2022a,该算法基于DOTC,结合抖动和量化误差隐藏,确保水印的鲁棒性和隐蔽性。图像被分为N*N块,根据水印信号进行二值化处理,通过调整重建电平的奇偶性嵌入水印。水印提取是嵌入过程的逆操作,通过重建电平恢复隐藏的水印比特。提供的代码片段展示了从块处理、水印嵌入到噪声攻击模拟及水印提取的过程,还包括PSNR和NC的计算,用于评估水印在不同噪声水平下的性能。
|
3天前
|
算法
基于蜣螂优化算法DBO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
基于蜣螂优化算法DBO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)