商务智能复习-Data Mining
数据挖掘概述 (DM & KDD)
什么是数据挖掘?
- 别名:数据库中的知识发现 (KDD, Knowledge Discovery in Database)。
- 核心定义:从大量、完整的数据库(或数据仓库)中,提取出隐含的、事先未知的、潜在有用的**模式(规则)**的过程。
- 本质:与传统的查询(找已知)和统计不同,数据挖掘是通过归纳发现未知的规律。
数据资源利用的三种方式
| 方式 | 特点 | 示例 |
|---|---|---|
| 查询服务 | 被动获取已有信息 | 在数据库中查找某人的薪水 |
| 演绎 | 根据已知规则推导 (OLAP, 统计分析) | 求平均薪水 |
| 归纳 (数据挖掘) | 主动发现未知模式 | 发现“买尿布的男性通常也买啤酒” |
核心评价指标
- 模式 (Pattern):数据间的逻辑关系(如:A→B)。
- 知识 (Knowledge):满足客观(置信度/兴趣度)和主观标准的模式。
- 置信度 (Confidence):规则成立的程度(条件概率)。
- 公式:(Confidence(A \rightarrow B) = P(B|A) = \frac{同时购买A和B的人数}{购买A的人数})
- 兴趣度/支持度 (Support/Interestingness):规则被用户关注的程度(发生频率)。
- 公式:(Support(A \rightarrow B) = P(A \cup B) = \frac{同时购买A和B的人数}{总人数})
- 非平凡性 (Nontrivial):挖掘出的规则不能是通过简单计算就能得到的(如平均值)。必须具有不确定性。
- 有效性:算法必须能在有效的时间和空间内(计算机上)实现。
数据仓库与数据挖掘的关系
为什么要在数据仓库(DW)上挖掘?
直接在操作型数据库(OLTP)上挖掘会遇到严重问题:
- 动态数据:数据频繁变化,需预警机制防止错误。
- 噪声与不确定性:存在错误数据。
- 冗余信息:同一数据在多处出现,可能夸大或低估模式的置信度/兴趣度。
- 不完整数据:数据库设计之初未考虑挖掘需求。
- 稀疏数据:实例空间稀疏,影响效率。
基于DW挖掘的优势
- 数据仓库中的数据已经过抽取、整理和预处理(清洗、集成、转换)。
- 数据是面向主题的、集成的、稳定的。
- 能直接运行数据挖掘算法,无需再次进行繁重的预处理。
数据挖掘的步骤 (KDD过程)
一般分为以下5个步骤:
- 数据集成:
- 从多源系统提取统一模型,建立一致视图。
- 预处理:数据清理(填补缺失、清除噪声)、转换(离散化、规范化)。
- 数据归约 (Reduction):
- 目的:降低数据量,提高挖掘效率,但保持结果一致。
- 技术:
- 数据立方体计算。
- 挖掘范围选择(只选相关属性)。
- 数据压缩。
- 离散化处理:将连续值划分为区域。
- 挖掘 (Mining):
- 选择合适算法和参数(如最小置信度、最小支持度),执行挖掘。
- 评价 (Evaluation):
- 按标准筛选出高质量的模式。
- 表示 (Representation):
- 将结果以可视化(文字、图形、表格)或知识库形式呈现。
常用的数据挖掘方法 (重点)
特征规则挖掘 (Characteristic Rules)
- 定义:描述一类数据对象的普遍特征(普化知识)。
- 核心方法:面向属性归约 (Attribute-Oriented Induction)。
- 概念层次树 (Concept Hierarchy Tree):
- 将属性值由低级(具体)提升到高级(抽象)。
- 示例:“南京” → “江苏” → “华东”。
- 过程:通过概念提升 (Roll-up),将数据泛化。
- 宏元组 (Macro-tuple) 与 COUNT:
- 将原始数据(基本元组)归约为概括数据(宏元组)。
- 新增
COUNT属性记录该宏元组包含的基本元组数。
- 噪声处理:设置阈值 M,剔除
COUNT值过小的宏元组(视为噪声),但不删除(用于后续支持度计算)。 - 数据立方方法:预计算统计结果(如多维数据库),直接获取数据,提升效率。
- 上翻 (Roll-up) / 下钻 (Drill-down):
- 上翻:沿概念树向上(更抽象)。
- 下钻:沿概念树向下(更细节)。
关联规则挖掘 (Association Rules) - ⭐️高频考点
- 定义:寻找数据库中属性(项)之间的关联程度。
- 基本概念:
- 项 (Item):属性值。
- 项集 (Itemset):项的集合。
- K-项集:包含K个项的集合。
- 核心算法机制 (Apriori 原理):
- 频繁项集 (Frequent Itemset):支持度 ≥ 最小支持度 (Min-Support)。
- 重要性质:频繁项集的任一子集也必须是频繁项集。(反之,若一个项集不频繁,其所有超集也不频繁)。
- 挖掘过程 (两阶段):
- 找频繁项集:根据 Apriori 原理,自底向上(1-项集 → 2-项集 → …)扫描数据库寻找。
- 生成关联规则:从频繁项集中生成满足最小置信度 (Min-Confidence) 的规则。
- 时间开销:主要在数据库的多遍扫描上。优化方法包括:数据库划分、哈希法过滤、采样验证。
序列模式分析 (Sequential Pattern)
- 侧重点:找出数据对象之间的前因后果关系(时序关系)。
- 示例:下雨 → 洪涝;电筒 → 电池。
分类分析 (Classification) - 有监督学习
- 定义:通过分析已标记(有类标号)的训练数据,建立模型,预测新数据的类别。
- 步骤:
- 学习 (训练):使用训练数据集,通过算法生成分类规则/决策树。
- 分类 (预测):用测试数据评估模型,然后对未标记数据进行分类。
- 常见方法:
- 决策树 (Decision Tree):
- 内部节点表示属性测试,分支表示测试结果,叶子节点表示类。
- 示例:判断是否买电脑(年龄、学生身份、信用等级)。
- 贝叶斯方法、神经网络、遗传算法等。
- 决策树 (Decision Tree):
聚类分析 (Clustering) - 无监督学习
- 定义:输入未标记的数据,按统计规律(距离或相似系数)自行分组。
- 与分类的区别:分类是先给定类标号再找特征;聚类是先找分组再打标签(类标号是挖掘出的结果)。
- 主要方法:划分法、层次法、基于密度法、基于网格法、基于模型法。
- 结果:可以用聚类树 (Dendrogram) 展示。
数据挖掘的应用领域
- 金融业:信用评级、股票分析、信用卡模式分析。
- 保险业:保险费率制定、险种关联、新险种预测。
- 零售业:顾客行为分析、商品构成分析、销售预测。
- 其他:医疗、电信、科学研究、故障诊断。
- 复杂数据挖掘:
- Web挖掘:内容挖掘、结构挖掘、使用记录(日志)挖掘。
- 空间数据库挖掘:地图、遥感数据。
- 多媒体挖掘:图像、音频、视频数据。
疑难点与易混淆点速记
- 置信度 vs 支持度:
- 置信度 = 条件概率(可靠度);支持度 = 频率(普遍性)。
- 两个指标必须同时满足,才能成为“强规则”。
- 特征挖掘 vs 分类分析:
- 特征挖掘是描述性的(比如:借书的人大多是商学院的)。
- 分类分析是预测性的(比如:根据这个人的特征,预测他会不会借书)。
- 分类 vs 聚类:
- 分类 = 有监督(知道标签,去学规律)。
- 聚类 = 无监督(不知道标签,去自动分组)。
- Apriori 反单调性:
- 这是关联规则最核心的剪枝策略。如果 {A,B} 不频繁,那么 {A,B,C} 一定不频繁,不需要计算。
- 关于预处理:
- 在数据仓库设计中(上一份文档),预处理是ETL的一部分。在数据挖掘中,预处理是数据归约和数据清理阶段,是为算法做准备。概念层次树是特征挖掘中极为重要的预处理手段。