理论教育 数据挖掘理论:发现数据模式的过程与应用价值

数据挖掘理论:发现数据模式的过程与应用价值

时间:2023-05-31 理论教育 版权反馈
【摘要】:数据挖掘人员甚至不能准确地确定查询目标。数据挖掘工具进行数据分析,可以发现重要的数据模式,对商务策略、知识库、科学和医学做出巨大贡献。数据挖掘是知识发现过程中的一个步骤。数据挖掘功能用于制定数据挖掘中要找的模式类型。描述型数据挖掘的任务是刻画数据库中数据的一般特征。实际上由于其所依据的类别独立性假设和缺乏某些数据的准确概率分布,贝叶斯分类器预测准确率会受到影响。

数据挖掘理论:发现数据模式的过程与应用价值

(一)数据挖掘概念与分类

1.数据挖掘的概念

数据挖掘是近年来随着人工智能数据库技术的发展而出现的一门新兴技术。它是从大量的数据中筛选出隐含的、可信的、新颖的、有效的信息的高级处理过程。它是数据库研究的一个很有应用价值的新领域,融合了数据库、人工智能、机器学习、统计学等多个领域的理论和技术。

传统的数据库查询使用一个定义清楚的查询条件来访问数据库,查询条件一般用一种语言(例如结构化查询语言SQL)来表述。查询的输出由数据库中满足条件的数据组成,通常输出的数据是数据库中全部数据的一个子集。数据挖掘访问数据库的方式与传统数据库访问方式不同,主要体现在:

(1)查询。查询条件可能不能很好地形成或不能精确描述。数据挖掘人员甚至不能准确地确定查询目标。

(2)数据。被访问的数据通常不同于原始操作型数据库中的数据。为了更好地支持挖掘过程,数据已经被清洗和修改。

(3)输出。数据挖掘查询的输出可能不是数据库的子集,而是关于数据库中内容的一些分析。

随着企业规模的不断扩大,快速增长的海量数据收集、存放在大型和大量数据存储库中,没有强有力的工具,理解它们已经远远超出了人的能力。结果,收集在大型数据储存库中的数据变成了“数据坟墓”——难得再访问的数据档案。这样,重要的决策常常不是基于数据储存库中信息丰富的数据,而是基于决策者的直觉,因为决策者缺乏从海量数据中提取有价值知识的工具。数据挖掘工具进行数据分析,可以发现重要的数据模式,对商务策略、知识库、科学和医学做出巨大贡献。

数据仓库基础上挖掘的知识通常以图表、可视化、类自然语言等形式表示出来,但所挖掘的知识并不都是有意义的,必须进行评价、筛选和验证,把有意义的知识放到知识库中,随着时间的推移将积累更多的知识。

2.数据挖掘的分类

随着信息化进程的巨大发展和广泛应用、物流管理信息系统的相继投入,基本实现了业务和日常管理的自动化,同时积累了大量的历史数据,这就为数据库营销和数据挖掘提供了必需的原料,新算法的生成扩大了物流数据处理的能力,并且开辟了挖掘数据的新方法。如何充分利用现有数据,提取关键指标数据,起到辅助决策的作用,是物流管理行业迫切需要解决的问题。

数据挖掘是知识发现过程中的一个步骤。它主要是利用某些特定的知识发现算法,在一定的运算效率的限制下,从数据中挖掘出有价值的知识。数据挖掘功能用于制定数据挖掘中要找的模式类型。数据挖掘一般可以分两类:描述型和预测型,如图5-7所示。描述型数据挖掘的任务是刻画数据库中数据的一般特征。预测型挖掘的任务是在当前数据上进行推断,以进行预测。

(二)常用数据挖掘模型与算法

图5-7 数据挖掘分类

数据挖掘软件使用的算法基本上都是成熟的、公开的算法,有一些公司采用自己研发的未公开的算法。大部分算法都不是专为解决某个问题而设计的,算法之间没有互斥性。不能认为一个问题非要采用某种算法,也不存在所谓最好的算法,一般通过试验来选取合适的算法。

1.贝叶斯算法

贝叶斯理论是英国牧师数学家托马斯·贝叶斯1763年提出的,贝叶斯理论假设如果事件的结果不确定,则量化它的唯一方法就是事件的发生概率。如果过去试验中事件的出现率已知,则可以根据数学方法计算出未来试验中事件出现的概率。

设X为一个类别未知的数据样本,H为某个假设,若数据样本X属于一个特定的类别C,那么分类问题就是决定P(H/X),即在获得数据样本X时,H假设成立的概率。

P(H|X)是事后概率,或为建立在X(条件)之上的H概率。由于P(X),P(H)和P(X|H)的概率值可以从(供学习使用的)数据集合中得到,贝叶斯定理描述了如何根据P(X),P(H)利P(X|H)计算获得P(H|X),具体公式定义如下:

从理论上讲与其他分类器相比,贝叶斯分类器具有最小的错误率。实际上由于其所依据的类别独立性假设和缺乏某些数据的准确概率分布,贝叶斯分类器预测准确率会受到影响。

贝叶斯算法提供了一种基于证据进行学习的系统方法。这个算法通过对感兴趣的变量与所有其他的变量之间的相关性进行计数来学习“证据”。

贝叶斯算法支持快速地创建有预测功能的挖掘模型,并且提供了一种浏览数据和理解的新方法。一般情况下,贝叶斯算法可以作为一个强大的预测器,可以利用这个算法执行一些预测的功能,以及执行高级的数据查看功能。贝叶斯算法提供的可视性很容易为大多数读者所理解,但是大多数人都使用更加高效复杂的算法(如决策树算法或者神经网络算法)进行预测。当浏览一个模型时,该模型将会描述该模型中属性的关系,发现使用其他方法很难发现的一些关系。朴素贝叶斯分类算法的性能可以和决策树算法与神经网络算法相媲美,对于大型数据库,具有高准确率和高速度的特点。

目前此种算法用于过滤垃圾邮件得到了广泛好评。贝叶斯过滤器是基于“自我学习”的智能技术,能够使自己适应垃圾邮件制造者的新把戏,同时为合法电子邮件提供保护。

2.决策树算法

决策树是定义布尔函数的一种方法,其输入是一组属性描述的对象,输出为Yes/No决策。一棵决策树可以代表一个决策过程,树的根节点是整个数据集合空间,每个分支节点是一个分裂问题,它是对一个单一属性的测试,该测试将数据集合空间分割成两个或更多块,每个叶节点是带有分类的数据分制。从决策树的根节点到叶节点的一条路径就形成了对相应对象的类别预测。从根节点到叶节点的一条路径就对应着一条规则,整棵决策树就对应着1组析取表达式规则。因此,1棵决策树可以看作是1个对目标分类的划分和获取策略。

决策树学习是以实例为基础的归纳学习推理算法。它是一种逼近离散函数的方法,且对噪声数据有很好的健壮性。一般来说,决策树的构造主要由2个阶段组成:第一阶段,建树阶段。选取部分受训数据建立决策树,决策树是按广度优先建立,直到每个叶节点包括相同的类标记为止。第二阶段,调整阶段,即对决策树进行调整(剪枝和增加节点),直到建立一棵正确的决策树。剪枝是一种克服训练样本集数据噪声的基本技术。对决策树进行修剪优化时要准确理解分类的特征描述和防止过多的噪声影响,从而达到更好的修剪效果,提高可理解性。决策树算法的核心问题是选取测试属性和决策树的剪枝。当利用所建决策树对一个新数据对象进行分析时,决策树能够依据该数据输入变量的取值,推断出相应目标变量的分类或取值。

决策树的优点是生成容易理解的规则,如果建立1个包含几百个属性的决策树,虽然看起来很复杂,但每一条从根节点到叶节点的路径所描述的含义还是可以理解的。再者,决策树算法的计算量相对来说不是很大,并且擅长处理非数值型数据。

决策树算法有CART(分类回归树,classification and regression trees)算法、ID3、Chaid及C4.5、Gini、Entropy、Twoing、Symgini等。其中,最有影响的是Quinlan提出的ID3算法,在ID3算法的基础上,又提出了C4.5算法。

决策树方法利用信息论原理对大量实例的特征进行信息量分析,计算各特征的互信息或信道容量,找出反映类别的重要特征,因此抓住了问题的本质。数据库规模越大,决策树方法的效果就越明显,这是它的显著优点。总的来说,决策树的优势就是它高度自动化地建立起易于为用户所理解的模型的能力。另外,系统能较好地处理缺省数据及带有噪声的数据等。同时,决策树很擅长处理非数值型数据,当遇到数值型数据时,需要把数值型数据映射成为非数值型数据。基于决策树的分类算法以其特有的优点广为人们采用,据统计,目前决策树算法利用率高达19%。

由于决策树方法具有较高的分类精确度,因而决策树数据挖掘时常被用于分类。例如,市场营销部门根据客户的特征,对客户大市场进行分制;确定银行每一个客户的信用风险等。虽然它的基本任务是分类,但是也能够应用于解决回归问题,它被应用于从信用卡损失预测到不同国际流通货币兑换率的时序预测各种问题中。在SQLSERVER,决策树还可以通过组合所有树并派生树的根之间的相关性来进行关联分析,但适合于进行关联分析的项数非常少且不能像关联算法一样返回项集和规则。另外,决策树也广泛应用于其他数据挖掘工具,如神经网络的数据预处理工具,通过对数据的初步探索,找出最相关的变量集(字段集)。

使用决策树算法也要注意其局限性。决策树对连续性的字段比较难预测;对有时间顺序的数据需要很多预处理。

3.神经网络

神经网络起源于生理学和神经生物学中有关神经细胞计算本质的研究工作。所谓神经网络就是1组相互连接的输入输出单元,这些单元之间的每个连接都关联1个权重。在网络学习阶段,网络通过调整权重来实现输入样本与其相应类别的对应。由于网络学习主要是针对其中的连接权重进行的,因此神经网络的学习有时也称为连接学习。调整节点间连接的权重就是在建立神经网络时要做的工作。最早的也是最基本的权重调整的方法是错误回馈法,现在较新的有变化坡度法、类牛顿法、Levenberg-Marquardt法和遗传算法。无论哪种算法,都需要一些参数来控制训练的过程,如防止训练过度和控制训练的速度。

在用于预测时,神经网络从输入节点接受属性值,并把这些值作为节点的值;然后对它们进行加权求和(权值就是那些存储在连接中的值),计算结果作为最远端的输出节点的值。在输出节点有一个专门的阈值函数来确定预测结果。

神经网络的优点是对噪声数据有较好的适应能力,并且对未知数据也具有较好的预测分类能力。目前人们也提出了一些从神经网络中抽取出规则的算法。这些算法将有助于数据挖掘中的神经网络应用。

一个多层前馈神经网络利用后传算法完成相应的学习任务。其中的输入对应每个训练样本的各属性取值;输入同时赋给第一层(称为输入层)单元,这些单元的输出结合相应的权重,同时反馈给第二层(称为隐藏层)单元;隐藏层的带权输出又作为输入再反馈给另一隐藏层,等等,最后的隐藏层节点带权输出反馈给输出层单元,该层单元最终给出相应样本的预测输出。只要中间隐藏层足够多,多层前馈网络下的线性阈值函数就可以充分逼近任何函数。其中,多层前馈神经网络结构如图5-8所示。

图5-8 多层前馈神经网络结构

基于神经网络的数据挖掘方法主要是:基于神经元网络的方法、BP学习算法、交叉覆盖算法以及遗传算法等。

虽然从简单易用和易于实现的角度来看,神经网络确实不如决策树那么优秀,并且还有训练时间长、透明度不高、处理多维数据的能力不强等劣势,但是,它也有一些其他算法难以比拟的优势,最吸引人的一点就是神经网络可以找出平滑而连续的非线性关系。相对于决策树的定性的分析预测方法,神经网络可以达到定量阶段,因而其预测精度高。由于神经网络支持离散和连续的输出,尽管前馈型神经网络通常用于解决分类和回归任务,但是当它克服瓶颈后,该算法也可以用于解决细分任务。

神经网络有着非常广泛的应用领域,它们已经被应用在商业领域中的各个方面,如通过信用卡欺诈检测、信用风险预测来提高目标营销的回应率、客户流失性分析等。另外,还包括在军事领域内的无人车辆的自动驾驶、通过生物模拟来学习书面英语的正确发音等。把神经网络用于特征抽取是其中一个非常重要的方面。在所有的数据挖掘技术中,一个重要的问题就是确定哪些属性对于建立一个高度精确的预测模型是最相关的和最重要的,这些属性或属性的组合称为“特征”。结果证明,这样处理能大幅度地提高预测模型的精确度并缩短建立模型的时间。

目前,神经网络的应用产品大部分还不太成熟,处于研究阶段的较多。预计随着企业对数据挖掘需求的提高,适用于特定行业业务的分析预测的神经网络产品将不断成熟。之所以是特定业务领域,是因为数据挖掘产品的模型并不是通用的,就像人的经验具有很强的个人特点一样。

4.关联规则

关联规则挖掘是关联知识发现的最常用方法。为了发现有意义的关联规则,需要给定两个阈值:最小支持度(minimum support)和最小可信度(minimum confidence)。挖掘出的关联规则必须满足用户规定的最小支持度,它表示一组项目关联在一起需要满足的最低联系程度。挖掘出的关联规则必须满足用户规定的最小可信度,反映一个关联规则的最低可靠度。数据挖掘系统的目的就是从数据库中挖掘出满足最小支持度和最小可信度的关联规则。关联规则的研究和应用是数据挖掘中最活跃和比较深入的分支,已经提出了许多关联规则挖掘的理论和算法。

设I=(i1,i2,…,in}是二进制文字的集合,其中的元素称为项(item)。设任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使得T⊆I。每一个事务有一个标识符,称作TID。设A是一个项集,事物T包含A,当且仅当A⊆T。关联规则是形如A≥B的蕴涵式,其中A⊆I,B⊆I,并且A、B之间的交集为空。

关联规则是形如X→Y的规则,关联规则挖掘找出支持度和可信度分别大于或等于用户指定的最小支持度和最小可信度的关联规则。关联规则的挖掘工作可以分成两个步骤,第一个步骤是从交易数据集合中发现所有满足用户给定的最小支持度的频繁项目集;第二个步骤是在频繁项目集的基础上生成所有满足用户给定的最小可信度的关联规则。(www.daowen.com)

关联规则算法可以对客户的事务执行购物篮分析,得出产品一起被购买的可能性的大小。用于客户行为分析的规则主要有以下3种:

(1)连带相关规则。连带相关规则是指--个事件的发生伴随着另外--件事情的发生。比如顾客购买家具时,购买了桌子,那么就很有可能购买2个以上的凳子。

(2)顺序相关规则。顺序相关规则讲的是一个事件发生之后,一定时间内也会发生另一个事件。天空布满乌云,不久会下雨就是一个时间顺序的相关规则。

(3)分类相关规则。分类相关规则是指某种特征的群体倾向于特定的行为。比如,收入高于一定数目的客户很可能购买某种商品。

关联分析是寻找数据库中数值的相关性,利用关联规则和序列模式技术,从大量商业数据中发现有意义的关联关系,可以帮助商业决策的制定,如交叉销售和优惠促销行动等。典型的应用如超市使用关联分析设计商品的摆放位置,方便顾客购物。

5.聚类分析

聚类分析是研究数据间逻辑或物理的相互关系的技术,它通过一定的规则将数据集划分为在性质上相似的数据点构成的几个类。聚类分析的结果不仅可以揭示数据间的内在联系与分别,同时也为进一步的数据分析与知识发现提供了重要的依据,如数据间的关联规则、分类模式以及数据的变化趋势等。由于数据挖掘技术的迅速崛起,聚类分析得以在数据库技术领域获得长足的发展。

聚类分析(cluster analysis)是数理统计中研究“物以类聚”的一种方法,是将一批样品或变量,按照性质的亲疏程度进行分类,把每个样品看成是m维(变量的个数为m个)空间的1个点,在m维坐标中,定义点与点(变量数值与数值)之间的某种距离。首先将n个样品自成类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,一直继续到所有样品归为一类为止。

聚类是一种常见的数据分析工具,是将物理或抽象对象的集合分组成为类似的对象组成的多个类或簇(cluster)的过程,由聚类所生成的类是对象的集合,这些对象与同类中的对象彼此相似,与其他类中的对象相异。在许多应用中,可以将一个类中的数据对象作为一个整体来对待。

聚类算法依赖于猜测和假设。猜测数据的分组,创建一组聚类,把各个事例分布到每一个聚类。假定猜测是正确的,那么,就创建了现实世界实际的模型,可以把训练数据的每个事例分到模型中适合的聚类中。可以调整模型以使该模型更适合现实世界,可以通过移动分组对模型进行调整。重复上述操作,假设刚刚创建的模型能够正确描述现实世界,则把现实世界的数据分配到该模型中。此时,并不是所有类似的事例都会被分到同一个聚类中。反复进行猜测和假设,直到某些事例不在聚类之间来回切换,或者认为该模型已经处于一个比较准确的状态,就可以停止猜测和假设。

实际上,通常需要针对数据的所有维进行随机初始化,以便初始化聚类。聚类方法对初始的点非常敏感,一个在局部收敛的聚类,可能不是全局最优的聚类。为了解决这个问题,可以在开始的时候初始化多个候选模型,并发地训练这些模型。当这些模型都收敛完成之后或者通过其他方式结束训练之后,选择一个最好的模型。

聚类算法可以分为:基于距离的方法;基于凝聚/分制的层次聚类;基于密度的方法如DBSCAN、OPTICS、DENCLUE。

由于聚类算法有能力发现用来对数据进行分组的隐含变量,因此聚类方法是一种非常流行的数据挖掘技术,特别是在销售行业很常见,可以运用聚类技术对客户进行分类,对不同的客户采取不同的策略。隐藏在数据中的组织结构是一种用来分析实际商业数据的强大工具,运用聚类的方法可以跟踪每个分组的值。

聚类可以用来理解数据,也可以用来作为数据分析的一个关键步骤。聚类操作对数据进行分组,并且可以对数据进行更深入的分析,获得其他方法不可能获得的信息。一旦对数据聚类完之后,聚类的结构就可以用于市场竞争、异常检测、趋势分析或者进一步分析。

相对于其他数据挖掘技术,聚类比较容易理解,倾向于定性分析,但较难定量地获得结果。因此,在很多场合下,聚类结果作为其他技术的应用基础,在类的基础上采用其他如决策树和神经网络方法,进一步对特定类进行分析,可以达到消除数据噪声,提高数据可靠性的效果。

聚类有很广泛的用途,如个人破产预测和个人笔迹的计算机识别过程。很多人在日常生活中使用着这些方法,但是根本就没有意识到他们在利用聚类方法,如我们把一些食品和汽车进行归类。

(三)数据挖掘过程

数据挖掘的任务就是在海量的数据中发现有用的数据。但是,仅仅发现数据那是不够的。我们必须在实施数据挖掘之前,先确定采取什么样的步骤,每一步都做些什么,达到什么样的目标,有了好的计划才能保证数据挖掘有条不紊地实施并取得成功。很多软件供应商和数据挖掘顾问公司提供了一些数据挖掘过程模型,来指导用户一步步地进行数据挖掘工作。

对这种模型做出一定的反应,并采取行动,最后将有用的数据转换成信息,信息变成行动,行动转换成价值。这个就是数据挖掘在应用上的一个完整的流程,数据挖掘的基本流程如图5-9所示。

本章对数据挖掘过程分步骤进行如下研究:

图5-9 数据挖掘的基本流程

1.确定业务问题

清晰地定义出业务问题,认清数据挖掘的目的是数据挖掘的重要一步。挖掘的最后结果是不可预测的,但要探索的问题应是有预见的,为了数据挖掘而数据挖掘则带有盲目性,是不会成功的。

2.数据准备

数据准备包括:选择数据在大型数据库和数据仓库目标中提取数据挖掘的目标数据集;数据预处理——进行数据再加工,包括检查数据的完整性及数据的一致性、去噪声,填补丢失的域,删除无效数据等。

根据已确定的业务问题,对数据进行筛选,把要挖掘的数据都收集到一个数据库中,当然根据要挖掘的数据量的大小、数据的复杂程度、使用方式的不同,有时一个简单的平面文件或电子表格就足够了。一般来说,直接在公司的数据仓库上进行数据挖掘是不合适的。应该建立一个独立的数据挖掘库。数据挖掘会非常频繁地访问数据仓库,这可能会带来一些资源申请上的问题。

一个简单的试验在数据仓库内都要很多步才能完成。比如需要经常把许多表链接在一起,访问数据仓库的细节数据。大部分情况下都需要修改要挖掘的数据。另外,数据仓库可能不支持你要对数据进行各种复杂分析所需的数据结构。这包括对数据进行统计查询、多维分析和各种复杂的图表及可视化。

建立数据挖掘库可以分成几个部分:数据收集、数据描述、选择、数据质量评估和数据清理、合并与整合、构建元数据、加载数据挖掘库、维护数据挖掘库。

(1)数据收集:确定要挖掘的数据源。可能一些外部的数据也是必需的,需要在公共数据库中获取或向数据拥有者购买。

(2)数据描述:描述每个文件和数据库表的内容。

(3)选择:选择用于数据挖掘的数据。这与对数据进行采样和选择预测变量是不同的,这里只是粗略地把一些冗余或无关的数据除去,或由于资源的限制、费用的限制、数据使用的限制、质量问题而必须做出的选择。

(4)数据质量评估和数据清理:确定数据的哪些性质会最终影响模型的质量。不仅要保证数据值的正确性和一致性,还要保证这些值是按同样的方法记录的同一件事情。

(5)合并与整合:把来自不同数据源的数据合并到同一个数据挖掘库中,并且要使那些本来存在冲突和不一致的数据一致化。

(6)构建元数据:数据收集报告和数据描述报告是建立元数据的基础。本质上,这是一个描述数据库的数据库。它用于建立实际的数据库和为分析数据和建立模型提供辅助信息。

(7)加载数据挖掘库:大多数情况下,用于挖掘的数据应该放到它自己独立的数据库中。经过前面所有的搜集、整理之后,把这些实际数据加载过来。

(8)维护数据挖掘库:数据挖掘库一旦建好,就需要定期进行备份,监视它的性能,不时地增加存储空间或提高性能。

数据预处理主要包括分析数据和准备数据。分析数据的目的是找到对预测输出影响最大的数据字段,决定是否需要定义导出字段。准备数据可以分为:选择变量、选择记录、创建新变量和转换变量。选择变量:理想情况下,可以选择所有的全部变量,把它们输入到数据挖掘工具中,让它来选择哪些是最好的预测变量。实际上这样做并不是很好,一方面是由于随着变量个数的增加,模型的建立时间也随之上升;另一方面盲目地把所有的变量都加进去会导致建立错误的模型。最好进行抽样选择。对记录的选择同变量一样。创建新变量:很多情况下从原始数据中衍生出一些新的变量作为预测变量。转换变量:根据所选择的算法和工具决定要对数据做哪些转换工作。

3.数据挖掘

根据数据功能的类型和数据的特点选择相应的算法,在净化和转换过的数据集上进行数据挖掘,建立数据挖掘模型。建立模型是一个反复的过程。需要仔细考察不同的模型以判断哪个模型最适合。一旦决定了预测的类型之后,就需要为这个预测选择模型的类型。选择什么样的模型决定了需要对数据做哪些预处理工作。数据准备好之后,就可以开始训练模型了,使得到的模型具有较好的精确度和健壮性。模型建立好之后,必须评价它的结果,解释它的价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,随着应用数据的不同,模型的准确率肯定会变化。更重要的是,准确度自身并不一定是选择最好模型的正确评价方法。

4.结果分析

对数据挖掘的结果进行解释和评价,转换成为能够最终被用户理解的知识。

5.知识的同化

将分析所得到的知识集成到业务信息系统的组织结构中去。充分结合经营绩效,在应用过程中对模型进行不断的微调。

【思考与练习】

(1)数据库管理系统主要有哪些功能?

(2)目前应用的数据模型有哪几种?各自的特点是什么?

(3)OLAP与OPTP的区别有哪些?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈