数据挖掘 - 快速指南


数据挖掘 - 概述

信息产业中有大量可用的数据。这些数据在转换为有用信息之前毫无用处。有必要对如此大量的数据进行分析并从中提取有用的信息。

信息提取并不是我们需要执行的唯一过程;数据挖掘还涉及其他过程,例如数据清理、数据集成、数据转换、数据挖掘、模式评估和数据表示。一旦所有这些过程结束,我们将能够在许多应用中使用这些信息,例如欺诈检测、市场分析、生产控制、科学探索等。

什么是数据挖掘?

数据挖掘被定义为从大量数据中提取信息。换句话说,我们可以说数据挖掘是从数据中挖掘知识的过程。提取的信息或知识可用于以下任何应用 -

  • 市场分析
  • 欺诈识别
  • 客户保留
  • 产品控制
  • 科学探索

数据挖掘应用

数据挖掘在以下领域非常有用 -

  • 市场分析与管理
  • 公司分析与风险管理
  • 欺诈识别

除此之外,数据挖掘还可以用于生产控制、客户保留、科学探索、体育、占星术和互联网冲浪辅助等领域

市场分析与管理

下面列出了使用数据挖掘的各个市场领域 -

  • 客户分析- 数据挖掘有助于确定什么样的人购买什么样的产品。

  • 确定客户需求- 数据挖掘有助于为不同客户确定最佳产品。它使用预测来寻找可能吸引新客户的因素。

  • 跨市场分析- 数据挖掘执行产品销售之间的关联/相关性。

  • 目标营销- 数据挖掘有助于找到具有相同特征(如兴趣、消费习惯、收入等)的模型客户群。

  • 确定客户购买模式- 数据挖掘有助于确定客户购买模式。

  • 提供摘要信息- 数据挖掘为我们提供了各种多维摘要报告。

公司分析和风险管理

数据挖掘用于企业部门的以下领域 -

  • 财务规划和资产评估- 它涉及现金流量分析和预测、或有债权分析以评估资产。

  • 资源规划- 它涉及总结和比较资源和支出。

  • 竞争- 它涉及监控竞争对手和市场方向。

欺诈识别

数据挖掘还用于信用卡服务和电信领域以检测欺诈Behave。在欺诈电话中,它有助于找到呼叫的目的地、呼叫的持续时间、一天或一周的时间等。它还可以分析偏离预期规范的模式。

数据挖掘 - 任务

数据挖掘涉及可以挖掘的模式类型。根据要挖掘的数据类型,数据挖掘涉及两类功能 -

  • 描述性的
  • 分类与预测

描述函数

描述性函数处理数据库中数据的一般属性。这是描述性函数的列表 -

  • 类/概念描述
  • 频繁模式挖掘
  • 关联挖掘
  • 相关性挖掘
  • 集群挖矿

类/概念描述

类/概念是指与类或概念相关联的数据。例如,在一家公司中,销售的商品类别包括计算机和打印机,客户的概念包括大额支出者和预算支出者。这种对类或概念的描述称为类/概念描述。这些描述可以通过以下两种方式得出 -

  • 数据表征- 这是指总结所研究班级的数据。正在学习的这个班级称为目标班级。

  • 数据歧视- 它是指类与某些预定义的组或类的映射或分类。

频繁模式挖掘

频繁模式是那些在事务数据中频繁出现的模式。这是常见模式的列表 -

  • 频繁项目集- 它是指经常一起出现的一组项目,例如牛奶和面包。

  • 频繁子序列- 频繁出现的模式序列,例如购买相机,后面跟着存储卡。

  • 频繁子结构- 子结构是指不同的结构形式,例如图、树或格,它们可以与项目集或子序列组合。

协会挖矿

关联在零售销售中用于识别经常一起购买的模式。这个过程是指揭示数据之间的关系并确定关联规则的过程。

例如,零售商生成一条关联规则,显示 70% 的时间牛奶与面包一起销售,而只有 30% 的时间cookie与面包一起销售。

相关性挖掘

它是一种附加分析,旨在揭示关联属性值对之间或两个项目集之间有趣的统计相关性,以分析它们是否对彼此有积极、消极或没有影响。

集群挖矿

簇是指一组相似类型的对象。聚类分析是指形成一组彼此非常相似但与其他聚类中的对象高度不同的对象。

分类与预测

分类是寻找描述数据类或概念的模型的过程。目的是能够使用该模型来预测类别标签未知的对象的类别。该派生模型基于对训练数据集的分析。导出的模型可以以以下形式呈现 -

  • 分类 (IF-THEN) 规则
  • 决策树
  • 数学公式
  • 神经网络

这些过程涉及的功能列表如下 -

  • 分类- 它预测类标签未知的对象的类。其目标是找到一个描述和区分数据类或概念的派生模型。派生模型基于训练数据的分析集,即类标签众所周知的数据对象。

  • 预测- 它用于预测丢失或不可用的数值数据值而不是类标签。回归分析通常用于预测。预测还可用于根据可用数据识别分布趋势。

  • 异常值分析- 异常值可以定义为不符合可用数据的一般Behave或模型的数据对象。

  • 演化分析- 演化分析是指Behave随时间变化的对象的描述和模型规律或趋势。

数据挖掘任务原语

  • 我们可以以数据挖掘查询的形式指定数据挖掘任务。
  • 该查询被输入到系统中。
  • 数据挖掘查询是根据数据挖掘任务原语定义的。

注意- 这些原语允许我们以交互方式与数据挖掘系统进行通信。这是数据挖掘任务原语的列表 -

  • 要挖掘的任务相关数据集。
  • 需要挖掘的知识类型。
  • 发现过程中使用的背景知识。
  • 模式评估的兴趣度度量和阈值。
  • 用于可视化发现的模式的表示。

要挖掘的任务相关数据集

这是用户感兴趣的数据库部分。这部分包括以下内容 -

  • 数据库属性
  • 感兴趣的数据仓库维度

需要挖掘的知识类型

它指的是要执行的功能类型。这些功能是 -

  • 表征
  • 歧视
  • 关联和相关分析
  • 分类
  • 预言
  • 聚类
  • 异常值分析
  • 演化分析

背景知识

背景知识允许在多个抽象级别上挖掘数据。例如,概念层次结构是允许在多个抽象级别挖掘数据的背景知识之一。

模式评估的兴趣度度量和阈值

这用于评估知识发现过程中发现的模式。对于不同类型的知识有不同的有趣的衡量标准。

用于可视化发现的模式的表示

这是指发现的模式的显示形式。这些表示可能包括以下内容。-

  • 规则
  • 表格
  • 图表
  • 图表
  • 决策树
  • 立方体

数据挖掘 - 问题

数据挖掘并不是一项容易的任务,因为所使用的算法可能变得非常复杂,并且数据并不总是在一个地方可用。它需要从各种异构数据源进行集成。这些因素也会产生一些问题。在本教程中,我们将讨论以下主要问题 -

  • 挖掘方法和用户交互
  • 性能问题
  • 多样化的数据类型问题

下图描述了主要问题。

数据挖掘问题

挖掘方法和用户交互问题

它指的是以下类型的问题 -

  • 在数据库中挖掘不同类型的知识- 不同的用户可能对不同类型的知识感兴趣。因此,数据挖掘有必要涵盖广泛的知识发现任务。

  • 多个抽象级别的知识的交互式挖掘- 数据挖掘过程需要是交互式的,因为它允许用户集中搜索模式,根据返回的结果提供和细化数据挖掘请求。

  • 背景知识的结合- 为了指导发现过程并表达发现的模式,可以使用背景知识。背景知识不仅可以用简洁的术语而且可以在多个抽象层次上来表达所发现的模式。

  • 数据挖掘查询语言和即席数据挖掘- 数据挖掘查询语言允许用户描述即席挖掘任务,应与数据仓库查询语言集成并针对高效灵活的数据挖掘进行优化。

  • 数据挖掘结果的呈现和可视化- 一旦发现模式,就需要用高级语言和视觉表示来表达。这些表示应该很容易理解。

  • 处理噪声或不完整的数据- 在挖掘数据规律的同时,需要数据清理方法来处理噪声和不完整的对象。如果不存在数据清理方法,那么所发现的模式的准确性将会很差。

  • 模式评估- 发现的模式应该很有趣,因为它们要么代表常识,要么缺乏新颖性。

性能问题

可能存在与性能相关的问题,如下所示 -

  • 数据挖掘算法的效率和可扩展性- 为了有效地从数据库中的大量数据中提取信息,数据挖掘算法必须高效且可扩展。

  • 并行、分布式和增量挖掘算法- 数据库规模庞大、数据分布广泛以及数据挖掘方法的复杂性等因素推动了并行和分布式数据挖掘算法的发展。这些算法将数据划分为多个分区,并以并行方式进一步处理。然后合并分区的结果。增量算法,更新数据库而无需从头开始再次挖掘数据。

多样化的数据类型问题

  • 处理关系型和复杂类型的数据- 数据库可能包含复杂的数据对象、多媒体数据对象、空间数据、时间数据等。一个系统不可能挖掘所有这些类型的数据。

  • 从异构数据库和全球信息系统中挖掘信息- 数据可在 LAN 或 WAN 上的不同数据源中获得。这些数据源可以是结构化的、半结构化的或非结构化的。因此,从他们身上挖掘知识给数据挖掘带来了挑战。

数据挖掘 - 评估

数据仓库

数据仓库具有以下特征来支持管理层的决策过程 -

  • 面向主题- 数据仓库是面向主题的,因为它为我们提供有关主题的信息,而不是组织正在进行的操作。这些主体可以是产品、客户、供应商、销售、收入等。数据仓库不关注正在进行的操作,而是专注于对数据进行建模和分析以进行决策。

  • 集成- 数据仓库是通过集成来自异构源(例如关系数据库、平面文件等)的数据而构建的。这种集成增强了数据的有效分析。

  • 时间变量- 数据仓库中收集的数据以特定时间段进行标识。数据仓库中的数据提供历史角度的信息。

  • 非易失性- 非易失性意味着添加新数据时不会删除以前的数据。数据仓库与操作数据库分开,因此操作数据库的频繁更改不会反映在数据仓库中。

数据仓库

数据仓库是构建和使用数据仓库的过程。数据仓库是通过集成来自多个异构源的数据而构建的。它支持分析报告、结构化和/或即席查询以及决策。

数据仓库涉及数据清理、数据集成和数据整合。为了集成异构数据库,我们有以下两种方法 -

  • 查询驱动方法
  • 更新驱动方法

查询驱动方法

这是集成异构数据库的传统方法。这种方法用于在多个异构数据库之上构建包装器和集成器。这些积分器也称为中介器。

查询驱动方法的流程

  • 当向客户端发出查询时,元数据字典会将查询转换为适合所涉及的各个异构站点的查询。

  • 现在这些查询被映射并发送到本地查询处理器。

  • 来自异构站点的结果被集成到全局答案集中。

缺点

这种方法有以下缺点 -

  • 查询驱动方法需要复杂的集成和过滤过程。

  • 对于频繁的查询来说效率非常低并且成本非常高。

  • 对于需要聚合的查询来说,这种方法的成本很高。

更新驱动方法

今天的数据仓库系统遵循更新驱动的方法,而不是前面讨论的传统方法。在更新驱动的方法中,来自多个异构源的信息被预先集成并存储在仓库中。这些信息可供直接查询和分析。

优点

这种方法具有以下优点 -

  • 这种方法提供了高性能。

  • 数据可以预先在语义数据存储中进行复制、处理、集成、注释、汇总和重组。

查询处理不需要与本地源处的处理接口。

从数据仓库(OLAP)到数据挖掘(OLAM)

在线分析挖掘将在线分析处理与多维数据库中的数据挖掘和挖掘知识相集成。下面的图表显示了 OLAP 和 OLAM 的集成 -

OLAP 到 OLAM

OLAM 的重要性

OLAM 很重要,原因如下:

  • 数据仓库中的高质量数据- 数据挖掘工具需要处理集成、一致和清理的数据。这些步骤在数据预处理中的成本非常高。通过这种预处理构建的数据仓库也是OLAP和数据挖掘的高质量数据的宝贵来源。

  • 围绕数据仓库的可用信息处理基础设施- 信息处理基础设施是指多个异构数据库、Web 访问和服务设施、报告和 OLAP 分析工具的访问、集成、合并和转换。

  • 基于 OLAP 的探索性数据分析- 有效的数据挖掘需要探索性数据分析。OLAM 提供了对各种数据子集和不同抽象级别进行数据挖掘的工具。

  • 在线选择数据挖掘功能- 将OLAP与多种数据挖掘功能和在线分析挖掘集成,使用户可以灵活地选择所需的数据挖掘功能并动态地交换数据挖掘任务。

数据挖掘 - 术语

数据挖掘

数据挖掘被定义为从大量数据中提取信息。换句话说,我们可以说数据挖掘就是从数据中挖掘知识。此信息可用于以下任何应用程序 -

  • 市场分析
  • 欺诈识别
  • 客户保留
  • 产品控制
  • 科学探索

数据挖掘引擎

数据挖掘引擎对于数据挖掘系统来说是非常重要的。它由一组执行以下功能的功能模块组成 -

  • 表征
  • 关联和相关分析
  • 分类
  • 预言
  • 聚类分析
  • 异常值分析
  • 演化分析

知识库

这就是领域知识。这些知识用于指导搜索或评估结果模式的趣味性。

知识发现

有些人将数据挖掘视为知识发现,而另一些人则将数据挖掘视为知识发现过程中必不可少的一步。以下是知识发现过程中涉及的步骤列表 -

  • 数据清理
  • 数据整合
  • 数据选择
  • 数据转换
  • 数据挖掘
  • 模式评估
  • 知识呈现

用户界面

用户界面是数据挖掘系统的模块,帮助用户和数据挖掘系统之间进行通信。用户界面允许以下功能 -

  • 通过指定数据挖掘查询任务与系统交互。
  • 提供信息以帮助集中搜索。
  • 基于中间数据挖掘结果的挖掘。
  • 浏览数据库和数据仓库模式或数据结构。
  • 评估挖掘的模式。
  • 以不同的形式可视化图案。

数据整合

数据集成是一种数据预处理技术,它将来自多个异构数据源的数据合并到一个连贯的数据存储中。数据集成可能会涉及到不一致的数据,因此需要进行数据清洗。

数据清理

数据清洗是一种用于去除噪声数据并纠正数据不一致的技术。数据清理涉及到纠正错误数据的转换。数据清理是在为数据仓库准备数据时作为数据预处理步骤执行的。

数据选择

数据选择是从数据库中检索与分析任务相关的数据的过程。有时,数据转换和合并是在数据选择过程之前执行的。

集群

簇是指一组相似类型的对象。聚类分析是指形成一组彼此非常相似但与其他聚类中的对象高度不同的对象。

数据转换

在此步骤中,通过执行汇总或聚合操作,将数据转换或合并为适合挖掘的形式。

数据挖掘-知识发现

什么是知识发现?

有些人不区分数据挖掘和知识发现,而另一些人则将数据挖掘视为知识发现过程中的重要步骤。以下是知识发现过程中涉及的步骤列表 -

  • 数据清理- 在此步骤中,噪声和不一致的数据将被删除。

  • 数据集成- 在此步骤中,组合多个数据源。

  • 数据选择- 在此步骤中,从数据库中检索与分析任务相关的数据。

  • 数据转换- 在此步骤中,通过执行汇总或聚合操作将数据转换或合并为适合挖掘的形式。

  • 数据挖掘- 在此步骤中,应用智能方法来提取数据模式。

  • 模式评估- 在此步骤中,评估数据模式。

  • 知识表示- 在这一步中,知识被表示。

下图显示了知识发现的过程 -

知识发现

数据挖掘 - 系统

有多种可用的数据挖掘系统。数据挖掘系统可以集成以下技术 -

  • 空间数据分析
  • 信息检索
  • 模式识别
  • 图像分析
  • 信号处理
  • 电脑图像
  • 网络技术
  • 商业
  • 生物信息学

数据挖掘系统分类

数据挖掘系统可以根据以下标准进行分类 -

  • 数据库技术
  • 统计数据
  • 机器学习
  • 信息科学
  • 可视化
  • 其他学科
数据挖掘系统

除此之外,数据挖掘系统还可以根据以下类型进行分类:(a) 挖掘的数据库、(b) 挖掘的知识、(c) 所使用的技术和 (d) 改编的应用程序。

根据挖掘的数据库进行分类

我们可以根据挖掘的数据库类型对数据挖掘系统进行分类。数据库系统可以根据数据模型、数据类型等不同标准进行分类。数据挖掘系统也可以相应地进行分类。

例如,如果我们根据数据模型对数据库进行分类,那么我们可能会拥有关系型、事务型、对象关系型或数据仓库挖掘系统。

基于挖掘的知识类型的分类

我们可以根据挖掘的知识类型对数据挖掘系统进行分类。这意味着数据挖掘系统是根据功能进行分类的,例如 -

  • 表征
  • 歧视
  • 关联和相关分析
  • 分类
  • 预言
  • 异常值分析
  • 演化分析

根据所使用的技术进行分类

我们可以根据所使用的技术类型对数据挖掘系统进行分类。我们可以根据所涉及的用户交互程度或所采用的分析方法来描述这些技术。

根据适应的应用进行分类

我们可以根据所适应的应用程序对数据挖掘系统进行分类。这些应用程序如下 -

  • 金融
  • 电信
  • 脱氧核糖核酸
  • 股市
  • 电子邮件

将数据挖掘系统与 DB/DW 系统集成

如果数据挖掘系统没有与数据库或数据仓库系统集成,那么就没有系统可以与之通信。该方案称为非耦合方案。在该方案中,主要重点是数据挖掘设计和开发高效且有效的算法来挖掘可用数据集。

整合方案列表如下 -

  • 无耦合- 在该方案中,数据挖掘系统不利用任何数据库或数据仓库功能。它从特定来源获取数据并使用某些数据挖掘算法处理该数据。数据挖掘结果存储在另一个文件中。

  • 松耦合- 在该方案中,数据挖掘系统可以使用数据库和数据仓库系统的一些功能。它从这些系统管理的数据呼吸中获取数据,并对这些数据执行数据挖掘。然后,它将挖掘结果存储在文件中或数据库或数据仓库中的指定位置。

  • 半紧耦合- 在这种方案中,数据挖掘系统与数据库或数据仓库系统链接,除此之外,还可以在数据库中提供一些数据挖掘原语的有效实现。

  • 紧耦合- 在这种耦合方案中,数据挖掘系统平滑地集成到数据库或数据仓库系统中。数据挖掘子系统被视为信息系统的一个功能组件。

数据挖掘 - 查询语言

数据挖掘查询语言(DMQL)是由 Han、Fu、Wang 等人提出的。用于 DBMiner 数据挖掘系统。数据挖掘查询语言实际上是基于结构化查询语言(SQL)的。数据挖掘查询语言可以设计为支持临时和交互式数据挖掘。此 DMQL 提供用于指定原语的命令。DMQL 也可以与数据库和数据仓库一起使用。DMQL 可用于定义数据挖掘任务。我们特别研究如何在 DMQL 中定义数据仓库和数据集市。

任务相关数据规范的语法

以下是用于指定任务相关数据的 DMQL 语法 -

use database database_name

or 

use data warehouse data_warehouse_name
in relevance to att_or_dim_list
from relation(s)/cube(s) [where condition]
order by order_list
group by grouping_list

指定知识类型的语法

在这里,我们将讨论表征、区分、关联、分类和预测的语法。

表征

表征的语法是 -

mine characteristics [as pattern_name]
   analyze  {measure(s) }

分析子句指定聚合度量,例如计数、总和或计数%。

例如 -

Description describing customer purchasing habits.
mine characteristics as customerPurchasing
analyze count%

歧视

歧视的语法是 -

mine comparison [as {pattern_name]}
For {target_class } where  {t arget_condition } 
{versus  {contrast_class_i }
where {contrast_condition_i}}  
analyze  {measure(s) }

例如,用户可以将大手笔消费者定义为购买平均价格为 100 美元或以上的商品的客户;预算消费者是指平均购买商品价格低于 100 美元的顾客。从每个类别中挖掘客户的判别描述可以在 DMQL 中指定为 -

mine comparison as purchaseGroups
for bigSpenders where avg(I.price) ≥$100
versus budgetSpenders where avg(I.price)< $100
analyze count

协会

关联的语法是 -

mine associations [ as {pattern_name} ]
{matching {metapattern} }

例如 -

mine associations as buyingHabits
matching P(X:customer,W) ^ Q(X,Y) ≥ buys(X,Z)

其中 X 是客户关系的关键;P和Q是谓词变量;W、Y 和 Z 是对象变量。

分类

分类的语法是 -

mine classification [as pattern_name]
analyze classifying_attribute_or_dimension

例如,为了挖掘模式,对客户信用评级进行分类,其中类别由属性credit_ rating确定,并且挖掘分类被确定为classifyCustomerCreditRating。

analyze credit_rating

预言

预测的语法是 -

mine prediction [as pattern_name]
analyze prediction_attribute_or_dimension
{set {attribute_or_dimension_i= value_i}}

概念层次规范的语法

要指定概念层次结构,请使用以下语法 -

use hierarchy <hierarchy> for <attribute_or_dimension>

我们使用不同的语法来定义不同类型的层次结构,例如:

-schema hierarchies
define hierarchy time_hierarchy on date as [date,month quarter,year]
-
set-grouping hierarchies
define hierarchy age_hierarchy for age on customer as
level1: {young, middle_aged, senior} < level0: all
level2: {20, ..., 39} < level1: young
level3: {40, ..., 59} < level1: middle_aged
level4: {60, ..., 89} < level1: senior

-operation-derived hierarchies
define hierarchy age_hierarchy  for age  on customer  as
{age_category(1), ..., age_category(5)} 
:= cluster(default, age, 5) < all(age)

-rule-based hierarchies
define hierarchy profit_margin_hierarchy  on item  as
level_1: low_profit_margin < level_0:  all

if (price - cost)< $50
   level_1:  medium-profit_margin < level_0:  all
   
if ((price - cost) > $50)  and ((price - cost) ≤ $250)) 
   level_1:  high_profit_margin < level_0:  all

兴趣度度量语法规范

用户可以使用以下语句指定兴趣度度量和阈值 -

with <interest_measure_name>  threshold = threshold_value

例如 -

with support threshold = 0.05
with confidence threshold = 0.7

模式表示和可视化规范的语法

我们有一种语法,允许用户指定以一种或多种形式显示发现的模式。

display as <result_form>

例如 -

display as table

DMQL 的完整规范

作为一家公司的市场经理,您希望描述能够购买价格不低于 100 美元的商品的客户的购买习惯;考虑到顾客的年龄、购买的商品类型以及购买商品的地点。您想知道具有该特征的客户的百分比。特别是,您只对在加拿大购买并使用美国运通信用卡付款的商品感兴趣。您希望以表格的形式查看结果描述。

use database AllElectronics_db
use hierarchy location_hierarchy for B.address
mine characteristics as customerPurchasing
analyze count%
in relevance to C.age,I.type,I.place_made
from customer C, item I, purchase P, items_sold S,  branch B
where I.item_ID = S.item_ID and P.cust_ID = C.cust_ID and
P.method_paid = "AmEx" and B.address = "Canada" and I.price ≥ 100
with noise threshold = 5%
display as table

数据挖掘语言标准化

标准化数据挖掘语言将达到以下目的 -

  • 帮助系统开发数据挖掘解决方案。

  • 提高多个数据挖掘系统和功能之间的互操作性。

  • 促进教育和快速学习。

  • 促进数据挖掘系统在工业和社会中的使用。

数据挖掘 - 分类和预测

有两种形式的数据分析可用于提取描述重要类别的模型或预测未来的数据趋势。这两种形式如下 -

  • 分类
  • 预言

分类模型预测分类类别标签;预测模型预测连续值函数。例如,我们可以构建一个分类模型,将银行贷款申请分类为安全或有风险,或者构建一个预测模型,根据潜在客户的收入和职业,预测其在计算机设备上的支出(以美元为单位)。

什么是分类?

以下是数据分析任务是分类的情况示例 -

  • 银行信贷员想要分析数据,以便了解哪些客户(贷款申请人)有风险,哪些是安全的。

  • 公司的营销经理需要分析具有给定资料的客户,该客户将购买一台新计算机。

在上述两个示例中,构建模型或分类器来预测分类标签。这些标签对于贷款申请数据是有风险还是安全,对于营销数据是是或否。

什么是预测?

以下是数据分析任务是预测的情况示例 -

假设营销经理需要预测特定客户在其公司的促销活动中将花费多少钱。在这个例子中,我们费心去预测一个数值。因此,数据分析任务是数值预测的一个例子。在这种情况下,将构建一个模型或预测器来预测连续值函数或有序值。

- 回归分析是一种最常用于数值预测的统计方法。

分类如何运作?

借助我们上面讨论的银行贷款申请,让我们了解分类的工作原理。数据分类过程包括两个步骤 -

  • 构建分类器或模型
  • 使用分类器进行分类

构建分类器或模型

  • 这一步就是学习步骤或者学习阶段。

  • 在此步骤中,分类算法构建分类器。

  • 分类器是根据由数据库元组及其关联的类标签组成的训练集构建的。

  • 构成训练集的每个元组称为类别或类。这些元组也可以称为样本、对象或数据点。

构建分类器或模型

使用分类器进行分类

本步骤中使用分类器进行分类。这里测试数据用于估计分类规则的准确性。如果认为准确性可以接受,则可以将分类规则应用于新的数据元组。

使用分类器

分类和预测问题

主要问题是为分类和预测准备数据。准备数据涉及以下活动 -

  • 数据清理- 数据清理涉及消除噪音和处理缺失值。通过应用平滑技术消除噪声,并通过用该属性最常出现的值替换缺失值来解决缺失值的问题。

  • 相关性分析- 数据库也可能具有不相关的属性。相关性分析用于了解任意两个给定属性是否相关。

  • 数据转换和缩减- 数据可以通过以下任何方法进行转换。

    • 标准化- 使用标准化来转换数据。标准化涉及缩放给定属性的所有值,以使它们落入较小的指定范围内。当在学习步骤中使用神经网络或涉及测量的方法时,使用归一化。

    • 泛化- 数据也可以通过将其泛化为更高的概念来进行转换。为此,我们可以使用概念层次结构。

- 数据还可以通过其他一些方法来减少,例如小波变换、分箱、直方图分析和聚类。

分类和预测方法的比较

这是比较分类和预测方法的标准 -

  • 准确性- 分类器的准确性是指分类器的能力。它正确地预测类标签,预测器的准确性是指给定的预测器可以猜测新数据的预测属性值的程度。

  • 速度- 这是指生成和使用分类器或预测器的计算成本。

  • 鲁棒性- 它是指分类器或预测器根据给定的噪声数据做出正确预测的能力。

  • 可扩展性- 可扩展性是指有效构建分类器或预测器的能力;给定大量数据。

  • 可解释性- 指分类器或预测器理解的程度。

数据挖掘 - 决策树归纳

决策树是一种包含根节点、分支和叶节点的结构。每个内部节点表示对属性的测试,每个分支表示测试的结果,每个叶节点保存一个类标签。树中最顶层的节点是根节点。

以下决策树针对概念 buy_computer,指示公司的客户是否可能购买计算机。每个内部节点代表对属性的测试。每个叶节点代表一个类。

决策树

拥有决策树的好处如下 -

  • 它不需要任何领域知识。
  • 这很容易理解。
  • 决策树的学习和分类步骤简单且快速。

决策树归纳算法

1980 年,一位名叫 J. Ross Quinlan 的机器研究员开发了一种称为 ID3(迭代二分法)的决策树算法。后来,他提出了C4.5,它是ID3的继承者。ID3和C4.5采用贪心方法。在这个算法中,没有回溯;这些树是以自上而下递归分而治之的方式构建的。

Generating a decision tree form training tuples of data partition D
Algorithm : Generate_decision_tree

Input:
Data partition, D, which is a set of training tuples 
and their associated class labels.
attribute_list, the set of candidate attributes.
Attribute selection method, a procedure to determine the
splitting criterion that best partitions that the data 
tuples into individual classes. This criterion includes a 
splitting_attribute and either a splitting point or splitting subset.

Output:
 A Decision Tree

Method
create a node N;

if tuples in D are all of the same class, C then
   return N as leaf node labeled with class C;
   
if attribute_list is empty then
   return N as leaf node with labeled 
   with majority class in D;|| majority voting
   
apply attribute_selection_method(D, attribute_list) 
to find the best splitting_criterion;
label node N with splitting_criterion;

if splitting_attribute is discrete-valued and
   multiway splits allowed then  // no restricted to binary trees

attribute_list = splitting attribute; // remove splitting attribute
for each outcome j of splitting criterion

   // partition the tuples and grow subtrees for each partition
   let Dj be the set of data tuples in D satisfying outcome j; // a partition
   
   if Dj is empty then
      attach a leaf labeled with the majority 
      class in D to node N;
   else 
      attach the node returned by Generate 
      decision tree(Dj, attribute list) to node N;
   end for
return N;

树木修剪

执行树修剪是为了消除训练数据中由于噪声或异常值而导致的异常。修剪后的树木较小且不太复杂。

树木修剪方法

修剪树有两种方法 -

  • 预修剪- 通过提前停止建造来修剪树。

  • 后修剪- 这种方法从完全生长的树中删除子树。

成本复杂性

成本复杂性通过以下两个参数来衡量 -

  • 树上的叶子数量,以及
  • 树的错误率。

数据挖掘 - 贝叶斯分类

贝叶斯分类基于贝叶斯定理。贝叶斯分类器是统计分类器。贝叶斯分类器可以预测类成员概率,例如给定元组属于特定类的概率。

贝叶斯定理

贝叶斯定理以托马斯·贝叶斯的名字命名。有两种类型的概率 -

  • 后验概率 [P(H/X)]
  • 先验概率 [P(H)]

其中 X 是数据元组,H 是一些假设。

根据贝叶斯定理,

P(H/X)= P(X/H)P(H) / P(X)

贝叶斯信念网络

贝叶斯置信网络指定联合条件概率分布。它们也称为置信网络、贝叶斯网络或概率网络。

  • 置信网络允许在变量子集之间定义类条件独立性。

  • 它提供了可以进行学习的因果关系的图形模型。

  • 我们可以使用经过训练的贝叶斯网络进行分类。

定义贝叶斯信念网络有两个组件 -

  • 有向无环图
  • 一组条件概率表

有向无环图

  • 有向无环图中的每个节点代表一个随机变量。
  • 这些变量可以是离散值或连续值。
  • 这些变量可以对应于数据中给出的实际属性。

有向无环图表示

下图显示了六个布尔变量的有向无环图。

非循环图

图中的弧线可以表示因果知识。例如,肺癌受一个人的肺癌家族史以及该人是否吸烟的影响。值得注意的是,变量 PositiveXray 与患者是否有肺癌家族史或患者是否吸烟无关,因为我们知道患者患有肺癌。

条件概率表

变量 LungCancer (LC) 值的条件概率表显示了其父节点、FamilyHistory (FH) 和 Smoker (S) 值的每种可能组合,如下所示 -

概率表

数据挖掘 - 基于规则的分类

IF-THEN 规则

基于规则的分类器利用一组 IF-THEN 规则进行分类。我们可以用以下形式表达一条规则:

IF 条件 THEN 结论

让我们考虑规则 R1,

R1: IF age = youth AND student = yes 
   THEN buy_computer = yes

要记住的要点 -

  • 规则的 IF 部分称为规则前提前提条件

  • 规则的 THEN 部分称为规则结果

  • 条件的先行部分由一个或多个属性测试组成,这些测试在逻辑上进行“与”运算。

  • 接下来的部分由类别预测组成。

注意- 我们还可以将规则 R1 编写如下 -

R1: (age = youth) ^ (student = yes))(buys computer = yes)

如果条件对于给定元组成立,则满足先行条件。

规则提取

在这里,我们将学习如何通过从决策树中提取 IF-THEN 规则来构建基于规则的分类器。

要记住的要点 -

从决策树中提取规则 -

  • 为从根节点到叶节点的每条路径创建一条规则。

  • 为了形成规则先行词,每个分割标准都进行逻辑与运算。

  • 叶节点保存类预测,形成规则结果。

使用顺序覆盖算法的规则归纳

顺序覆盖算法可用于从训练数据中提取 IF-THEN 规则。我们不需要首先生成决策树。在此算法中,给定类的每个规则涵盖该类的许多元组。

一些顺序覆盖算法包括 AQ、CN2 和 RIPPER。根据总体策略,一次学习一个规则。每次学习规则时,都会删除该规则覆盖的元组,并对其余元组继续执行该过程。这是因为决策树中每个叶子的路径都对应一个规则。

注意- 决策树归纳可以被视为同时学习一组规则。

以下是顺序学习算法,一次学习一个类的规则。当从类 Ci 学习规则时,我们希望该规则仅覆盖类 C 的所有元组,而不覆盖任何其他类的元组。

Algorithm: Sequential Covering

Input: 
D, a data set class-labeled tuples,
Att_vals, the set of all attributes and their possible values.

Output:  A Set of IF-THEN rules.
Method:
Rule_set={ }; // initial set of rules learned is empty

for each class c do
   
   repeat
      Rule = Learn_One_Rule(D, Att_valls, c);
      remove tuples covered by Rule form D;
   until termination condition;
   
   Rule_set=Rule_set+Rule; // add a new rule to rule-set
end for
return Rule_Set;

规则修剪

该规则被修剪的原因如下:

  • 质量评估是在原始训练数据集上进行的。该规则可能在训练数据上表现良好,但在后续数据上表现不佳。这就是为什么需要规则修剪的原因。

  • 通过删除合词来修剪该规则。如果 R 的修剪版本的质量高于独立元组集评估的质量,则规则 R 被修剪。

FOIL是一种简单有效的规则剪枝方法。对于给定的规则 R,

FOIL_Prune = pos - neg / pos + neg

其中 pos 和 neg 分别是 R 覆盖的正元组的数量。

注意- 该值将随着剪枝集上 R 的准确性而增加。因此,如果 R 的修剪版本的 FOIL_Prune 值较高,则我们修剪 R。

其他分类方法

这里我们将讨论其他分类方法,例如遗传算法、粗糙集方法和模糊集方法。

遗传算法

遗传算法的思想来源于自然进化。在遗传算法中,首先创建初始种群。该初始群体由随机生成的规则组成。我们可以用一串位来表示每个规则。

例如,在给定的训练集中,样本由两个布尔属性(例如A1和A2)来描述。这个给定的训练集包含两个类,例如 C1 和 C2。

我们可以将规则IF A1 AND NOT A2 THEN C2 编码为位串100。在该位表示中,最左边的两个位分别表示属性A1和A2。

同样,规则IF NOT A1 AND NOT A2 THEN C1可以被编码为001

注意- 如果属性有 K 个值,其中 K>2,那么我们可以使用 K 位来对属性值进行编码。类也以相同的方式编码。

要记住的要点 -

  • 基于适者生存的概念,形成一个新的种群,该种群由当前种群中的适者规则和这些规则的后代值组成。

  • 规则的适用性通过其在一组训练样本上的分类准确性来评估。

  • 应用交叉和变异等遗传算子来创造后代。

  • 在交叉中,规则对中的子串被交换以形成一对新的规则。

  • 在变异中,规则字符串中随机选择的位被反转。

粗糙集方法

我们可以使用粗糙集方法来发现不精确和噪声数据中的结构关系。

注意- 此方法只能应用于离散值属性。因此,连续值属性在使用前必须进行离散化。

粗糙集理论基于给定训练数据内等价类的建立。形成等价类的元组是难以辨别的。这意味着样本在描述数据的属性方面是相同的。

给定的现实世界数据中存在一些类,无法根据可用属性来区分。我们可以使用粗糙集来粗略地定义此类。

对于给定的 C 类,粗糙集定义由两个集合近似,如下所示 -

  • C 的下近似值- C 的下近似值由所有数据元组组成,基于属性的知识,这些数据元组肯定属于 C 类。

  • C 的上近似- C 的上近似由所有元组组成,基于属性的知识,不能被描述为不属于 C。

下图显示了 C 类的上近似和下近似 -

近似

模糊集方法

模糊集合论也称为可能性论。该理论由 Lotfi Zadeh 于 1965 年提出,作为二值逻辑概率论的替代。这个理论使我们能够在高抽象层次上工作。它还为我们提供了处理数据测量不精确的方法。

模糊集合论还允许我们处理模糊或不精确的事实。例如,成为一组高收入的成员是准确的(例如,如果 50,000 美元很高,那么 49,000 美元和 48,000 美元又如何)。与传统的 CRISP 集合不同,传统的 CRISP 集合中的元素要么属于 S 要么属于它的补集,但在模糊集合理论中,元素可以属于多个模糊集合。

例如,收入值$49,000既属于中模糊集又属于高模糊集,但程度不同。该收入值的模糊集符号如下 -

mmedium_income($49k)=0.15 and mhigh_income($49k)=0.96

其中“m”是分别对medium_venue 和high_venue 的模糊集进行操作的隶属函数。该符号可以用图解表示如下 -

模糊法

数据挖掘-聚类分析

簇是属于同一类的一组对象。换句话说,相似的对象被分组在一个簇中,而不相似的对象被分组在另一簇中。

什么是聚类?

聚类是将一组抽象对象划分为相似对象的类的过程。

需要记住的要点

  • 一组数据对象可以被视为一组。

  • 在进行聚类分析时,我们首先根据数据相似性将数据集划分为组,然后为组分配标签。

  • 聚类相对于分类的主要优点是,它能够适应变化并有助于挑选出区分不同群体的有用特征。

聚类分析的应用

  • 聚类分析广泛应用于市场研究、模式识别、数据分析和图像处理等许多应用中。

  • 聚类还可以帮助营销人员发现客户群中的不同群体。他们可以根据购买模式来描述客户群体的特征。

  • 在生物学领域,它可用于派生植物和动物分类学,对具有相似功能的基因进行分类,并深入了解种群固有的结构。

  • 聚类还有助于识别地球观测数据库中类似土地利用的区域。它还有助于根据房屋类型、价值和地理位置识别城市中的房屋组。

  • 聚类还有助于对网络上的文档进行分类以进行信息发现。

  • 聚类还用于异常值检测应用,例如信用卡欺诈检测。

  • 作为一种数据挖掘功能,聚类分析是一种深入了解数据分布以观察每个聚类特征的工具。

数据挖掘中聚类的要求

以下几点阐明了为什么数据挖掘中需要聚类 -

  • 可扩展性- 我们需要高度可扩展的集群算法来处理大型数据库。

  • 处理不同类型属性的能力- 算法应该能够应用于任何类型的数据,例如基于间隔的(数字)数据、分类数据和二进制数据。

  • 具有属性形状的簇的发现- 聚类算法应该能够检测任意形状的簇。它们不应仅限于容易发现小尺寸球形簇的距离测量。

  • 高维- 聚类算法不仅应该能够处理低维数据,还应该能够处理高维空间。

  • 处理噪声数据的能力- 数据库包含噪声、丢失或错误的数据。某些算法对此类数据敏感,可能会导致聚类质量较差。

  • 可解释性- 聚类结果应该是可解释的、可理解的和可用的。

聚类方法

聚类方法可以分为以下几类 -

  • 分区方式
  • 层次法
  • 基于密度的方法
  • 基于网格的方法
  • 基于模型的方法
  • 基于约束的方法

分区方式

假设我们有一个包含“n”个对象的数据库,并且分区方法构造了“k”个数据分区。每个分区将代表一个簇并且 k ≤ n。这意味着它将数据分为 k 组,满足以下要求 -

  • 每组至少包含一个对象。

  • 每个对象必须恰好属于一个组。

要记住的要点 -

  • 对于给定数量的分区(比如 k),分区方法将创建一个初始分区。

  • 然后,它使用迭代重定位技术,通过将对象从一组移动到另一组来改进分区。

分层方法

此方法创建给定数据对象集的分层分解。我们可以根据层次分解的形成方式对层次方法进行分类。这里有两种方法 -

  • 聚合方法
  • 分裂的方法

聚合方法

这种方法也称为自下而上的方法。在此,我们从每个对象形成一个单独的组开始。它不断合并彼此接近的对象或组。它继续这样做,直到所有组合并为一个或直到终止条件成立。

分裂的方法

这种方法也称为自上而下的方法。在此,我们从同一集群中的所有对象开始。在连续迭代中,一个簇被分成更小的簇。它会一直关闭,直到一个簇中的每个对象或终止条件成立为止。这种方法是刚性的,即一旦合并或分裂完成,就永远无法撤消。

提高层次聚类质量的方法

以下是用于提高层次聚类质量的两种方法 -

  • 对每个层次分区的对象链接进行仔细分析。

  • 集成层次聚合,首先使用层次聚合算法将对象分组为微簇,然后对微簇进行宏聚类。

基于密度的方法

该方法基于密度的概念。基本思想是只要邻域中的密度超过某个阈值,就继续增长给定的簇,即,对于给定簇内的每个数据点,给定簇的半径必须至少包含最小数量的点。

基于网格的方法

在此,对象一起形成一个网格。对象空间被量化为形成网格结构的有限数量的单元。

优点

  • 该方法的主要优点是处理时间快。

  • 它仅取决于量化空间中每个维度的单元数量。

基于模型的方法

在此方法中,为每个簇假设一个模型,以找到给定模型的最佳数据拟合。该方法通过对密度函数进行聚类来定位聚类。它反映了数据点的空间分布。

该方法还提供了一种根据标准统计自动确定聚类数量的方法,同时考虑异常值或噪声。因此它产生了稳健的聚类方法。

基于约束的方法

在此方法中,通过结合用户或面向应用的约束来执行聚类。约束是指用户期望或期望的聚类结果的属性。约束为我们提供了一种与聚类过程进行交互的通信方式。约束可以由用户或应用程序要求指定。

数据挖掘 - 挖掘文本数据

文本数据库由大量文档组成。他们从新闻文章、书籍、数字图书馆、电子邮件、网页等多种来源收集这些信息。由于信息量的增加,文本数据库正在迅速增长。在许多文本数据库中,数据是半结构化的。

例如,文档可能包含一些结构化字段,例如标题、作者、出版日期等。但是,除了结构数据之外,文档还包含非结构化文本组件,例如摘要和内容。如果不知道文档中可能包含什么,就很难制定有效的查询来分析数据并从数据中提取有用的信息。用户需要工具来比较文档并对它们的重要性和相关性进行排名。因此,文本挖掘已变得流行并成为数据挖掘的一个重要主题。

信息检索

信息检索涉及从大量基于文本的文档中检索信息。一些数据库系统通常不存在于信息检索系统中,因为两者处理不同类型的数据。示例