商务智能复习-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)上挖掘会遇到严重问题:

  1. 动态数据:数据频繁变化,需预警机制防止错误。
  2. 噪声与不确定性:存在错误数据。
  3. 冗余信息:同一数据在多处出现,可能夸大或低估模式的置信度/兴趣度。
  4. 不完整数据:数据库设计之初未考虑挖掘需求。
  5. 稀疏数据:实例空间稀疏,影响效率。

基于DW挖掘的优势

  • 数据仓库中的数据已经过抽取、整理和预处理(清洗、集成、转换)。
  • 数据是面向主题的、集成的、稳定的。
  • 能直接运行数据挖掘算法,无需再次进行繁重的预处理。

数据挖掘的步骤 (KDD过程)

一般分为以下5个步骤:

  1. 数据集成
    • 从多源系统提取统一模型,建立一致视图。
    • 预处理:数据清理(填补缺失、清除噪声)、转换(离散化、规范化)。
  2. 数据归约 (Reduction)
    • 目的:降低数据量,提高挖掘效率,但保持结果一致。
    • 技术
      • 数据立方体计算。
      • 挖掘范围选择(只选相关属性)。
      • 数据压缩。
      • 离散化处理:将连续值划分为区域。
  3. 挖掘 (Mining)
    • 选择合适算法和参数(如最小置信度、最小支持度),执行挖掘。
  4. 评价 (Evaluation)
    • 按标准筛选出高质量的模式。
  5. 表示 (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)。
    • 重要性质:频繁项集的任一子集也必须是频繁项集。(反之,若一个项集不频繁,其所有超集也不频繁)。
  • 挖掘过程 (两阶段)
    1. 找频繁项集:根据 Apriori 原理,自底向上(1-项集 → 2-项集 → …)扫描数据库寻找。
    2. 生成关联规则:从频繁项集中生成满足最小置信度 (Min-Confidence) 的规则。
  • 时间开销:主要在数据库的多遍扫描上。优化方法包括:数据库划分、哈希法过滤、采样验证。

序列模式分析 (Sequential Pattern)

  • 侧重点:找出数据对象之间的前因后果关系(时序关系)。
  • 示例:下雨 → 洪涝;电筒 → 电池。

分类分析 (Classification) - 有监督学习

  • 定义:通过分析已标记(有类标号)的训练数据,建立模型,预测新数据的类别。
  • 步骤
    1. 学习 (训练):使用训练数据集,通过算法生成分类规则/决策树。
    2. 分类 (预测):用测试数据评估模型,然后对未标记数据进行分类。
  • 常见方法
    • 决策树 (Decision Tree)
      • 内部节点表示属性测试,分支表示测试结果,叶子节点表示类。
      • 示例:判断是否买电脑(年龄、学生身份、信用等级)。
    • 贝叶斯方法、神经网络、遗传算法等。

聚类分析 (Clustering) - 无监督学习

  • 定义:输入未标记的数据,按统计规律(距离或相似系数)自行分组。
  • 与分类的区别:分类是先给定类标号再找特征;聚类是先找分组再打标签(类标号是挖掘出的结果)。
  • 主要方法:划分法、层次法、基于密度法、基于网格法、基于模型法。
  • 结果:可以用聚类树 (Dendrogram) 展示。

数据挖掘的应用领域

  1. 金融业:信用评级、股票分析、信用卡模式分析。
  2. 保险业:保险费率制定、险种关联、新险种预测。
  3. 零售业:顾客行为分析、商品构成分析、销售预测。
  4. 其他:医疗、电信、科学研究、故障诊断。
  5. 复杂数据挖掘
    • Web挖掘:内容挖掘、结构挖掘、使用记录(日志)挖掘。
    • 空间数据库挖掘:地图、遥感数据。
    • 多媒体挖掘:图像、音频、视频数据。

疑难点与易混淆点速记

  1. 置信度 vs 支持度
    • 置信度 = 条件概率(可靠度);支持度 = 频率(普遍性)。
    • 两个指标必须同时满足,才能成为“强规则”。
  2. 特征挖掘 vs 分类分析
    • 特征挖掘是描述性的(比如:借书的人大多是商学院的)。
    • 分类分析是预测性的(比如:根据这个人的特征,预测他会不会借书)。
  3. 分类 vs 聚类
    • 分类 = 有监督(知道标签,去学规律)。
    • 聚类 = 无监督(不知道标签,去自动分组)。
  4. Apriori 反单调性
    • 这是关联规则最核心的剪枝策略。如果 {A,B} 不频繁,那么 {A,B,C} 一定不频繁,不需要计算。
  5. 关于预处理
    • 在数据仓库设计中(上一份文档),预处理是ETL的一部分。在数据挖掘中,预处理是数据归约数据清理阶段,是为算法做准备。概念层次树是特征挖掘中极为重要的预处理手段。