0%

第一章 数据挖掘概述

什么是数据挖掘?

  • 数据挖掘不是简单地从网络或数据库搜索数据。
  • 数据挖掘与知识发现 (Knowledge Discovery in Database, KDD) 相关。

数据挖掘 (Data Mining, DM) 定义

  • 通用定义: 数据挖掘是发现数据中潜在的有用模式(信息、知识、规律、模型)的过程。
    • 例如:猎人在动物迁徙行为中寻找模式,农夫在庄稼生长中寻找模式,政客在选民意见中寻找模式。
  • 技术角度: 利用一种或多种计算机学习技术,从数据中自动分析并提取信息的处理过程。
    • 目的是寻找和发现数据中潜在的、有价值的信息、知识、规律、联系和模式
    • 与计算机科学有关,通常使用机器学习、统计学、联机分析处理、专家系统和模式识别等多种方法实现。
  • 学科角度: 是一门交叉学科,涉及数据库技术、人工智能技术、统计学、可视化技术、并行计算等多种技术。
  • 商业角度: 是一种商业智能信息处理技术。
    • 围绕商业目标开展,对大量商业数据进行抽取、转换、分析和处理。
    • 从中提取辅助商业决策的关键性数据,揭示隐藏的、未知的或验证已知的规律性。
    • 是一种深层次的商业数据分析方法

数据挖掘与知识发现 (KDD) 的关系

  • KDD 是指从数据中发现有用知识的整个过程
  • 数据挖掘KDD 过程中的一个特定步骤
  • 数据挖掘是特定算法的应用,用于从数据中提取模式。
  • KDD 过程的步骤:
    1. 选择: 从数据到目标数据。
    2. 预处理: 将目标数据转换为已处理数据。
    3. 转换: 将处理后的数据转换为转换数据。
    4. 数据挖掘: 将数据转换为模式。
    5. 解释和/或评估模式: 将模式转化为知识。

数据挖掘的四个“超级问题”或能做什么

数据挖掘的核心任务或可以解决的问题包括:预测、聚类、关联分析和异常分析。进一步细化为以下几项功能:

  1. 分类 (Classification)

    • 目的: 使用已知类别的实例建立分类模型,对未知类别的实例进行分类。
    • 输出: 离散量
    • 类别数: 确定
    • 应用示例: 评估信用卡申请者的风险等级(低、中、高)。
    • 与聚类的区别: 分类通过有标注语料学习假设函数、确定决策分界
  2. 估值 (Estimation)

    • 目的: 根据已知属性值,估计一个连续值的输出。
    • 输出: 连续值
    • : 不确定
    • 应用示例: 根据购买模式,估计一个家庭的孩子个数、收入或财产。
    • 与分类的区别: 类似于分类,但输出是连续值。
  3. 预测 (Prediction)

    • 目的: 通过分类或估值得出预测模型,用该模型对未知变量进行预测。
    • 方法: 通常通过分类或估值的方法来实现。
    • 应用示例: 预测明天上证指数的收盘价。
  4. 相关分析 (Association Analysis)

    • 目的: 发现数据中属性之间的有价值的联系。生成关联规则,表达客户购买行为的关联关系。

    • 应用示例: 购物篮分析 (Market Basket Analysis)——寻找零售产品之间有趣的关系,如购买A同时是否经常购买B。

    • 方法: 生成关联规则。关联规则可以有多个输出属性。

    • 算法: 最著名的是 Apriori 算法 (Agrawal, 1993)。Apriori 算法不支持数值型数据,需进行数据变换。

    • 关联规则示例

      (基于感冒数据集):

      • IF Leukocytosis = Yes THEN Fever = Yes
      • IF Increased-lym = No THEN Sore-throat = Yes
      • IF Cooling-effect = Good THEN Fever = Yes
  5. 聚类 (Clustering)

    • 目的: 对实例分组,把相似的实例放在一个聚类(簇)中。发现最能区分各聚类的典型属性,使用这些属性开发预测未来结果的模型。

    • 特点: 是一种无指导(无教师)的学习。在学习训练之前,无预先定义好分类的实例

    • 方法: 数据实例按照某种相似性度量方法计算相似程度,将最相似的实例聚类在一个组——簇 (Cluster) 中。然后解释和理解每个簇的含义。

    • 应用示例: 在信用卡公司,发现一组输入属性来区分接受寿险促销和未接受促销的持卡人。市场细分、社交圈分析、集群计算、天体数据分析。

    • 与分类的区别: 聚类通过簇内相似度及簇间的距离对不同簇进行划分

    • 聚类技术/算法: 基于划分(如 K-means)、基于分层、基于模型等。K-means (K-均值) 算法 是一种最为常用和易用的算法。

    • K-means 算法过程: 迭代过程,分为簇分类和移动聚类中心。

      • 指定一个初始的簇的个数 (K)。
      • 任意选定 K 个对象作为初始簇中心。
      • 根据与簇中心的距离,每个对象被分配给最近的一个簇(簇分类)。
      • 计算每个簇中样本点的平均值,将相应的聚类中心移动到这个均值处。
      • 重复迭代,直到没有对象被重新分配或聚类中心不再改变。
    • 聚类结果示例

      (基于感冒数据集,K=2): 聚类为两个簇,每个簇有5个实例。

      • Cluster0 = {1,3,4,8,9}
      • Cluster1 = {2,5,6,7,10}
      • 簇的概念结构可表示为产生式规则。
  6. 异常分析 (Anomaly Analysis) / 异常检测 (Anomaly Detection)

    • 目的: 通过数据挖掘方法发现与数据集分布不一致的异常数据。也被称为离群点、异常值检测
    • 适用场景特点:
      • (1) 无标签或者类别极不均衡。
      • (2) 异常数据跟样本中大多数数据的差异性较大。
      • (3) 异常数据在总体数据样本中所占的比例很低。
    • 常见应用案例:
      • 金融领域: 识别“欺诈用户”(信用卡申请欺诈、盗刷、信贷欺诈)。
      • 安全领域: 判断流量数据波动和是否受到攻击。
      • 电商领域: 识别“恶意买家”(羊毛党、恶意刷屏团伙)。
      • 生态灾难预警: 基于天气指标数据判断极端天气。
      • 医疗监控: 从医疗设备数据发现可能显示疾病状况的异常数据。

与数据挖掘有关的概念

  • 数据查询 (Data Query)
    • 通过数据查询语言在数据中找出需要的数据或信息。
    • 与数据挖掘的区别: 数据查询获取的是浅知识或多维知识,而数据挖掘获取的是潜在的、隐藏的信息或知识——隐含知识 (Hidden Knowledge)
  • 专家系统 (Expert System)
    • 一种具有“智能”的计算机软件系统。
    • 能够模拟某个领域人类专家的决策过程,解决复杂问题。
    • 通常包含以规则形式表示的领域专家的知识和经验。
    • 专家系统方法与数据挖掘方法有所不同。
  • 机器学习 (Machine Learning)
    • 是数据挖掘中常用的技术方法之一。
    • 概念学习 (Concept Learning): 通过大量实例训练发现经验化规律。结果通常表现为概念。机器擅长学习概念。概念可以从传统、概率、样本三个角度看待。
    • 归纳学习 (Induction-Based Learning): 基于归纳的学习,是机器学习的一种方式。通过观察特定实例、研究已有经验材料,获取和探索新知识,以概念形式表现。
    • 有指导的学习 (Supervised Learning):
      • 定义: 通过对大量已知分类或输出结果值(有标记 labels)的实例进行训练。调整模型结构,建立能够准确分类或预测未知模型的目的。
      • 用于分类、估值、预测
      • 数据: 使用有标注数据集 (x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))。
      • 目标: 学习出假设函数、确定决策分界。
      • 示例方法: 决策树、神经网络、回归分析。
    • 无指导的聚类 (Unsupervised Clustering):
      • 定义: 无指导(无教师)的学习未给出具体的标记 y(m),仅有数据集 (x(1), x(2),…,x(m))。
      • 用于聚类
      • 目标: 算法对同一类的进行划分。
      • 示例方法: K-means 算法、凝聚聚类方法、概念分层 Cobweb 算法、EM 算法。神经网络也可以建立无指导聚类模型。

有监督学习的具体方法举例

  • 决策树 (Decision Tree)

    • 一种倒立树
    • 非叶子节点表示在一个属性上的分类检查。
    • 叶子节点表示决策判断的结果。
    • 有很多算法 (文本提到 C4.5)。
    • 可以被翻译为一个产生式规则集合
    • 产生式规则格式: IF 前提条件 THEN 结论。
    • 示例 (基于感冒类型诊断): IF Sore-throat = No THEN Cold-type = Viral 等。
  • 神经网络 (Neural Network)

    • 一种具有统计特性的数学模型

    • 创建思想源于人类神经网络的结构、功能和运行过程。

    • 试图模拟人脑功能来完成学习。

    • 是非常流行的数据挖掘技术

    • 可以建立有指导学习模型无指导聚类模型

    • 输入属性必须是数值的,输出属性可以是数值的或分类的。

    • 前馈 (Feed-Forward) 神经网络

      是常用的有指导的学习模型。

      • 通常是全连接的:每一层的每个节点都与其下一层的所有节点相连接,同层节点不相连。每个网络连接有权重值
    • 建立神经网络模型的两个阶段:

      1. 学习训练阶段: 提交实例输入属性值,计算输出,与期望输出比较产生误差,通过修改连接权值传回网络。训练终止条件:达到迭代次数或错误率收敛。
      2. 检验阶段: 固定网络权重,用于计算新实例的输出值。
  • 回归分析 (Regression Analysis)

    • 一种有监督的统计分析方法
    • 用来确定两个或两个以上变量之间的定量的依赖关系
    • 建立一个数学方程作为数学模型,来概化一组数值数据。
    • 进而进行数值数据的估值和预测
    • 示例: 使用回归方程预估办公楼的价值。

数据挖掘的过程 (KDD过程中的数据挖掘阶段)

数据挖掘实验通常分为4个步骤:

  1. 准备数据:
    • 重要且费时。
    • 明确目标后,从传统数据库、数据仓库和平面文件收集和抽取数据。
      • 传统数据库: 操作型数据库,面向日常事务处理,关系模型,规范化二维关系表。
      • 数据仓库: 面向决策支持,非日常事务处理。
      • 平面文件: 数据量较小的数据集,如 Excel 电子表格。
    • 包括准备训练数据和检验数据。
  2. 挖掘数据:
    • 选择一种数据挖掘技术或算法,将数据提交给数据挖掘工具,应用算法建立模型。
    • 选择技术/算法需考虑:
      • (1) 判断学习是有指导还是无指导的。
      • (2) 数据集中哪些实例和属性提交;哪些作训练数据;哪些作检验数据
      • (3) 如何设置数据挖掘算法的参数
  3. 解释和评估结果:
    • 检查数据挖掘输出,评估是否达到目标,确定发现的信息是否有价值。
    • 如果结果不理想,可以重复实验:(1) 使用新的数据实例或属性;(2) 选择新的数据挖掘算法或参数。
    • 数据挖掘过程是一个迭代的过程
  4. 模型应用:
    • 数据挖掘的终极目标
    • 应用分类模型解决疾病诊断。
    • 应用聚类模型进行顾客分类,找出特征,为促销提供决策支持。
    • 应用关联分析模型找出商品购买关联关系,为货架摆放、促销提供决策支持。

数据挖掘的作用

  • 能够解决疾病诊断问题(如例1.1)。
  • 能够解决对顾客的分类问题,为促销活动等提供决策支持。
  • 能够找出商品购买关联关系,为货架摆放、商品促销提供决策支持。

数据挖掘的应用案例

  • 金融领域: 甄别虚假医疗凭据、识别洗钱行为、提高金融产品销售定价准确率。
  • 通信领域: 根据家庭特征确定客户倾向和需求,帮助签约和增加交易额。
  • 医疗领域: 通过心肌SPECT图像诊断冠心病。
  • 媒体娱乐: 分析票房收入确定受欢迎的演员和故事情节。
  • 科学研究: 发现第三类γ射线爆。
  • 体育领域: 优化战术组合 (NBA)。
  • 流媒体/内容推荐: 成功营销热播剧 (Netflix)。

数据挖掘软件 - Weka

  • 简介:
    • 全称: Waikato Environment for Knowledge Analysis (怀卡托智能分析环境)。
    • 诞生于新西兰怀卡托大学 (University of Waikato)。
    • 基于 Java 的免费开源软件
    • 集成了数据挖掘的机器学习算法和统计技术。
    • 功能: 数据预处理、分类、聚类、关联分析、属性选择和交互式可视化
    • 特点: 操作简单、易学易用,适合入门。若未安装 JRE 需下载包含 JRE 的版本。
  • Weka 软件特点:
    • 跨平台
    • 支持多种文件格式 (结构化文本、数据挖掘格式、数据库接口)。
    • 支持连续型数值数据离散型(字符型和日期型)数据
    • 强大的数据预处理功能: 缺失数据处理、噪声处理、标准化、离散化、属性构造、变量转换、数据拆分、平滑等。
    • 提供数据挖掘功能: 分类、聚类、关联、可视化。
    • 算法灵活: 提供算法组合、用户自定义算法嵌入、参数设置。
    • 报告和评估: 生成基本报告、测试报告、输出格式,实现模型解释、比较、数据评分。
    • 可视化功能: 数据、挖掘过程和结果可视化。
  • Weka 的文件格式:
    • 默认使用 ARFF (Attribute-Relation File Format) 格式。
    • 一种 ASCII 文本文件格式。
    • 由两部分组成:
      • 头信息 (Head Information): 关系的声明和属性的声明。
      • 数据信息 (Data Information): 数据集中的数据实例 (Instance)。
  • Weka 的功能/界面:
    • 有 4 种界面 (GUI)。
    • Explorer: 数据挖掘用户最常用的界面。包含 6 个选项卡/功能: Preprocess (预处理), Classify (分类), Cluster (聚类), Associate (关联分析), Select attributes (属性选择), Visualize (可视化)。
    • Experimenter。
    • Knowledge Flow。
  • 使用 Weka 的基本步骤: (以示例为基础)
    1. 准备数据。
    2. 加载和预处理数据。
    3. 建立模型(分类、聚类、关联分析等)。
    4. 应用模型(如分类未知实例)、解释和评估结果。

本讲小结

  • 数据挖掘是建立模型,不是魔术!
  • 模型建立是人类本性(归纳和分类)使然,是一个自然、有趣且有意义的过程。