数据挖掘:基于关联挖掘的商品销售分析

本文探讨关联挖掘理论,包括定义、属性和分类,并通过建立星型模型,利用多维数据组织和OLAP对Northwind数据进行分析。挖掘结果显示商品销量与单价、折扣间存在紧密关联,折扣越大销量越小。关联挖掘为理解和优化销售策略提供有力工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                               摘   要 

本次论文作为数据仓库的结课论文,主要总结了课堂上学到的有关关联挖掘定义和属性以及分类等理论知识;并根据李建老师提供的Northwind数据(这是一系列有关商品销售情况的数据),建立星型模型,并将数据进行了多维形式的数据组织。在此基础上,进行利用关联挖掘技术挖掘不同类型的商品在不同国家、地区和城市的销量,与商品的单价和折扣之间的关联关系,并展示了部分主要操作步骤的截图。

1相关理论

1.1关联规则的定义及属性

在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Lmielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。

设R= { I1,I2 ……Im} 是一组物品集,W 是一组事务集。W 中的每个事务T 是一组物品,T∈R。假设有一个物品集A,一个事务T,如果A∈T,则称事务T 支持物品集A。关联规则是如下形式的一种蕴含A→B,其中A、B 是两组物品,A∈I,B∈I,且A∩B=∅。一般用四个参数来描述一个关联规则的属性:

1.可信度

设W 中支持物品集A 的事务中,有c %的事务同时也支持物品集B,c %称为关联规则A→B 的可信度。简单地说,可信度就是指在出现了物品集A 的事务T 中,物品集B 也同时出现的概率有多大。

2.支持度

设W 中有s %的事务同时支持物品集A 和B,s %称为关联规则A→B 的支持度。支持度描述了A 和B 这两个物品集的并集C 在所有的事务中出现的概率有多大。

3.期望可信度

设W 中有e %的事务支持物品集B,e %称为关联规则A→B 的期望可信度度。期望可信度描述了在没有任何条件影响时,物品集B 在所有事务中出现的概率有多大。

4.作用度

作用度是可信度与期望可信度的比值。作用度描述物品集A 的出现对物品集B 的出现有多大的影响。因为物品集B 在所有事务中出现的概率是期望可信度;而物品集B 在有物品集A 出现的事务中出现的概率是可信度,通过可信度对期望可信度的比值反映了在加入“物品集A 出现”的这个条件后,物品集B 的出现概率发生了多大的变化。

可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。

期望可信度描述了在没有物品集A 的作用下,物品集B 本身的支持度;作用度描述了物品集A 对物品集B 的影响力的大小。作用度越大,说明物品集B 受物品集A 的影响越大。一般情况,有用的关联规则的作用度都应该大于1,只有关联规则的可信度大于期望可信度,才说明A 的出现对B 的出现有促进作用,也说明了它们之间某种程度的相关性,如果作用度不大于1,则此关联规则也就没有意义了。

1.2关联规则的分类

按照不同情况,关联规则可以进行分类如下:

1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。

布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。

2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。

在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。

3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。

在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。

2关联规则挖掘在商品销售信息中的应用

2.1建立星

综合实验: 1. 问题描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个哈夫曼码的编/译码系统。 2. 基本要求 一个完整的系统应具有以下功能: (1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼,并将它存于文件hfmTree中。 (2) E:编码(Encoding)。利用已建好的哈夫曼(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 (3) D:译码(Decoding)。利用已建好的哈夫曼将文件CodeFile中的代码进行译码,结果存入文件Textfile中。 (4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。 (5) T:印哈夫曼(Tree printing)。将已在内存中的哈夫曼以直观的方式(比如)显示在终端上,同时将此字符形式的哈夫曼写入文件TreePrint 中。 3. 测试数据 用下表给出的字符集和频度的实际统计数据建立哈夫曼,并实现以下报文的编码和译码:“THIS PROGRAME IS MY FAVORITE”。 字符 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1
基于哈夫曼数据压缩算法是一种常用的无损数据压缩算法。它的基本思想是通过构建哈夫曼来生成一个最优的前缀码,从而实现数据压缩。以下是该算法的基本步骤: 1. **统计字符频率**:首先,统计输入数据中每个字符出现的频率。 2. **构建哈夫曼**: - 将每个字符及其频率作为一个节点,存入一个优先队列(最小堆)中。 - 重复以下步骤直到队列中只剩下一个节点: - 从队列中取出两个频率最小的节点。 - 创建一个新节点,其频率为这两个节点频率之和。 - 将这两个节点作为新节点的子节点。 - 将新节点插入优先队列中。 3. **生成哈夫曼编码**:通过遍历哈夫曼,从根节点到每个叶子节点的路径上,左分支标记为0,右分支标记为1,从而生成每个字符的哈夫曼编码。 4. **压缩数据**:根据生成的哈夫曼编码,将输入数据中的每个字符替换为其对应的编码,生成压缩后的数据。 5. **保存哈夫曼**:为了在解压缩时能够还原原始数据,需要将哈夫曼的结构保存下来,通常是通过保存每个字符及其对应的编码。 以下是一个简单的示例: 假设输入数据为“ABACCDA”,统计字符频率如下: - A: 3 - B: 1 - C: 2 - D: 1 构建哈夫曼的过程如下: 1. 将节点(A:3), (B:1), (C:2), (D:1)插入优先队列。 2. 取出(B:1)和(D:1),合并成新节点(E:2)。 3. 将(E:2)插入优先队列。 4. 取出(C:2)和(E:2),合并成新节点(F:4)。 5. 将(F:4)插入优先队列。 6. 取出(A:3)和(F:4),合并成新节点(G:7)。 7. 队列中只剩下(G:7),哈夫曼构建完成。 生成的哈夫曼如下: ``` G / \ A F / \ C E / \ B D ``` 生成的哈夫曼编码如下: - A: 0 - C: 10 - B: 110 - D: 111 压缩后的数据为“01001100111”。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值