3.4.3 大数据挖掘与**分析
数据挖掘是从大量数据中寻找其规律的技术,是统计学、数据库技术和人工智能技术的综合。数据挖掘是从数据中自动地抽取出模式、关联、变化、异常和有意义的结构。数据挖掘主要价值在于利用数据挖掘技术能发现规律并改善预测模型。
数据挖掘技术可以分为描述性技术和预测性技术,描述性技术了解数据中潜在的规律,预测性技术是用历史预测未来的技术。
数据挖掘的任务是从大量的数据中发现模式。根据数据挖掘的任务可分为多种类型,其中比较典型的有:关联分析、基于决策树或神经网络的分类分析、聚类分析、序列分析等,如图3-50所示是其中一些应用示例。下面分别介绍几种常见的数据挖掘类型。
1. 关联(Association)分析
关联规则描述了一组数据项之间的关系。关联分析是在交易数据、关系数据或其他信息载体中,发现存在于项目集或对象集之间的关联规则,包括关联、相关性、因果结构或频繁出现的模式。在关联规则挖掘算法中,通常给出了置信度和支持度两个概念,对于置信度和支持度均大于给定阈值的规则称为强规则,而关联分析主要就是对强规则的挖掘。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。关联分析广泛用于购物篮分析、交叉销售、商品目录设计等商业决策领域。沃尔玛就使用关联规则发现了哪些人同时购买了纸尿片和啤酒。例如,下面是在购物篮分析中的关联规则例子。
问题是:“什么商品组合,顾客可能会在一次购物中同时购买?”
购物篮分析:设全域为出售商店的集合(即项目全集),一次购物购买(即事务)的商品为项目全集的子集,若每种商品用一个布尔变量表示该商品的有无,则每个购物篮可用一个布尔向量表示。通过对布尔向量的分析,得到反映商品频繁关联或同时购买的购买模式。这些模式可用关联规则描述。
购买纸尿布与购买啤酒的关联规则可表示为:
diaper→beer [support=2%,confidence=60%] support为支持度,confidence为置信度。
该规则表示:在所分析的全部事务中,有2%的事务同时购买纸尿布和啤酒;在购买纸尿布的顾客中60%也购买啤酒。
常用的关联分析算法有Apriori算法及它的各种改进或扩展算法。Apriori算法是一种挖掘布尔关联规则频繁项集的算法。算法的核心思想是基于频集理论的一种递推方法,目的是从数据库中挖掘出那些支持度和信任度都不低于给定的*小支持度阈值和*小信任度阈值的关联规则。在这里,所有支持度大于*小支持度的项集称为频繁项集,简称频集。对于大规模、分布在不同站点上的数据库或数据仓库,关联规则的挖掘可以使用并行算法,如Count分布算法、Data分布算法、Candidate分布算法、智能Data分布算法(IDD)和DMA分布算法等。
2. 分类(Classification)分析
所谓分类是根据数据的特征为每个类别建立一个模型,根据数据的属性将数据分配到不同的组中。在实际应用过程中,分类规则可以分析分组中数据的各种属性,并找出数据���属性模型,从而确定哪些数据属于哪些组。这样就可以利用该模型来分析已有数据,并预测新数据将属于哪一个组。类的描述可以是显式的,如用一组特征概念描述;也可以是隐式的,如用一个数学公式或数学模型描述。
分类是事先定义好类别,属于有指导学习范畴。分类的目的是学会一个分类模型(称为分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类中。要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组数据库记录或元组构成,每个元组是一个由特征值组成的特征向量。此外,训练样本还有一个类别标记。一个具体样本的形式可表示为:
(v1,v2,...,vn; c);其中vi表示特征值,c表示类别。
常用分类算法有决策树、神经网络(NN)、贝叶斯分类(Bayes)等。决策树是一个树结构,它用样本的属性作为节点,用属性的取值作为分支。决策树的根节点是所有样本信息中信息量*大的属性,中间节点是以该节点为根的子树所包含的样本子集中信息量*大的属性,决策树的叶节点是样本的类别值。决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。它采用自顶向下的递推方式,在决策树的内部节点进行属性值的比较并根据不同的属性值判断从该节点向下的分支,在决策树的叶节点得到结论。所以,从根节点到叶节点的一条路径就对应着一条合取规则,整棵决策树就对应着一组析取表达式规则。**的决策树算法有ID3和改进的C4.5。如图3-51所示为一个决策树的例子。
神经网络(NN)算法是反映人脑结构及功能的一种数学模型,它是由大量的简单处理单元经广泛并行互联形成的一种网络系统,用以模拟人类进行知识的表示与存储以及利用知识进行推理的行为。它是对人脑系统的简化、抽象和模拟,具有人脑功能的许多特征。如图3-52所示为基于知识的神经网络的信息流程。
分类适合类别或分类体系已经确定的场合,目前分类分析已经成功地用于顾客分类、疾病分类、商业建模和信用卡分析等领域。
3. 聚类分析(Clustering)
聚类是指一组彼此间非常“相似”的数据对象的集合。相似的程度可以通过距离函数来表示,由用户或专家指定。聚类分析是按照某种相近程度度量方法将数据分成互不相同的一些分组。每一个分组中的数据相近,不同分组之间的数据相差较大。好的聚类方法可以产生高质量的聚类,保证每一聚类内部的相似性很高,而各聚类之间的相似性很低。聚类分析的核心是将某些定性的相近程度测量方法转换成定量测试方法。采用聚类分析,系统可以根据部分数据发现规律,找出对全体数据的描述。
常用算法有K均值、*近邻、神经网络等。K均值算法把n个对象根据它们的属性分为k个分割,k < n。它与处理混合正态分布的*大期望算法很相似,试图找到数据中自然聚类的**。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和*小。
聚类分析用于很多领域,如对购物篮分析中,可用聚类分析基于其他人的兴趣来预测这个顾客的兴趣。
4. 序列(Sequence)分析
序列分析主要用于分析数据仓库中的某类与时间相关的数据,搜索类似的序列或子序列,并挖掘时序模式、周期性、趋势和偏离等。序列模式可以看成是一种特定的关联模型,它在关联模型中增加了时间属性。例如,它可以导出,“在两年前购买了福特轿车的顾客,有70%可能在今年采取以旧换新的购车行动”,“在购买了自行车和购物篮的所有客户中,有80%的客户会在两个月后购买打气筒”等。
5. 偏差检测(Deviation Detection)分析
用于检测并解释数据分类的偏差,即数据集中间显著不同于其他数据的对象。它有助于滤掉知识发现引擎所抽取的无关信息,也可滤掉那些不合适的数据,同时可产生新的关注性事实。偏差包括很多有用的知识,如分类中的反常实例,模式的例外,观察结果对模型预测的偏差,量值随时间的变化等。偏差检测的基本方法是寻找观察结果与参照之间的差别,观察结果常常是某一个域的值或多个域值的汇总,参照是给定模型的预测、外界提供的标准或另一个观察。常用算法有决策树、神经网络、异常因子LOF检测等。常用应用有及时发现有欺诈嫌疑的异常行为等。
6. 预测模型(Predictive Modeling)分析
所谓预测即从数据库或数据仓库中已知的数据推测未知的数据或对象集中某些属性的值分布。建立预测模型的常用方法:回归分析、线性模型、支持矢量机、关联规则、决策树预测、遗传算法、神经网络等。后续章节将**阐述预测分析。
7. 模式相似性挖掘
用于在时间数据库或空间数据库中搜索相似模式时,从所有对象中找出用户定义范围内的对象,或找出所有元素对中两者的距离小于用户定义的距离范围的元素对。模式相似性挖掘的方法有相似度测量法、遗传算法等。