2.4 数据挖掘方法
在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量的、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中的有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能、机器学习、模式学习、统计学等。通过对大数据高度自动化的分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域(如银行、电信、电商等),数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类分析、关联规则、因子分析、主成分分析、神经网络方法、Web数据挖掘等。这些方法从不同的角度对数据进行挖掘。
2.4.1 分类分析
分类是数据挖掘技术中运用最为广泛也是比较重要的分析手段,它是指运用训练数据集,通过分析数据的特征和运用一定的算法求得分类规则,该分类规则就是数据分类的模型,然后运用该模型对任何位置的数据对象进行分类。分类分为两个阶段:①构建分类模型,通过一定的算法对已知类标记的数据集建立分类模型;②用第一阶段构造的模型来预测给定的数据对象的类别。比较典型的分类方法有决策树分类方法、神经网络分类法、贝叶斯分类法以及 K-近邻分类法。分类分析可以被用于分析客户的属性和特征,进行精准营销。
1.决策树
决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同的属性值判断从该节点向下的分支,在决策树的叶节点得到结论。决策树的表现形式类似于流程图的树结构,在决策树的内部节点进行属性值测试,并根据属性值判断由该节点引出的分支,在决策树的叶节点得到结论。内部节点是属性或者属性组合,而叶节点代表样本所属的类或类分布。经由训练样本集产生一棵决策树后,为了对未知样本集进行分类,需要在决策树上测试未知样本的属性值。测试路径是由根节点到某个叶节点,叶节点代表的类就是该样本所属的类。
2.贝叶斯分类
贝叶斯(Bayes)分类算法是利用统计学贝叶斯定理,来预测类成员的概率,即给定一个样本,计算该样本属于一个特定的类的属性。这些算法主要利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算法,如TAN算法,它是在贝叶斯网络结构的基础上增加属性对之间的关联来实现的。
贝叶斯分类的主要算法包括朴素贝叶斯分类算法、贝叶斯网络分类算法等。
朴素贝叶斯分类(Naïve Bayes Analysis, NBC),假设每个属性之间都是相互独立的,并且每个属性对非类问题产生的影响都是一样的,即一个属性值对给定类的影响独立于其他属性的值。
贝叶斯定理是概率论中的一个结果,它跟随机变量的条件概率以及边缘概率分布有关。通常来讲,事件A在事件B发生的条件下的概率,与事件B在事件A发生的条件下的概率是不一样的,这两者有确定的关系,贝叶斯定理就是这种关系的陈述。
3.k-近邻分类法
k-近邻分类法不是事先通过数据来选好分类模型,再对未知样本分类,而是存储带有标记的样本集,给一个没有标记的样本,用样本集中k个与之相近的样本对其进行即时分类。k-近邻就是找出k个相似的样本来建立目标函数逼近。
k-近邻的基本思路:首先,存储一些标记好的样本集;其次,要有一个未知类的样本用来对其分类;其次,逐一取出样本集中的样本,与未知类样本相比较,找到k个与之相近的样本,用这k个样本的多数的类为未知样本定类;最后,在样本集为连续值时,用k个样本的平均值为未知样本定值。
2.4.2 回归分析
回归分析是指对具有相关关系的两个变量或多个变量建立合适的数学模型,以近似地表示变量之间平均变化关系的一种统计方法。回归分析与分类分析类似,但回归分析的目的不是寻找描述类的模式,而是寻找变量间的关系模式以确定数值。例如简单的线性回归技术,它的结果是一个函数,可以根据输入变量的值来计算输出变量的值。比较流行的回归分析技术有线性回归和逻辑回归,两者的区别在于线性回归的因变量是连续的,逻辑回归的变量是离散的。此外,还有非线性回归模型,有的可以转化为线性模型。回归分析方法被广泛地用于解释市场占有率、销售额、品牌偏好及市场营销效果。
1.线性回归
线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。
线性回归有很多实际用途,分为以下两大类。
(1)如果目标是预测或者映射,线性回归可以用来对观测数据集的值和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的y值的情况下,可以用这个拟合过的模型预测出一个y值。
(2)给定一个变量y和一些变量X1, ..., Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与Xj之间相关性的强度,评估出与y不相关的Xj,并识别出哪些Xj的子集包含关于y的冗余信息。
2. Logistic回归分析
Logistic回归模型是一种概率模型,适合于病例—对照研究、随访研究和横断面研究,且结果发生的变量取值必须是二分的或多项分类。可用影响结果变量发生的因素作为自变量与因变量,建立回归方程。
Logistic回归分析的主要用途:一是寻找危险因素;二是预测;三是判别。
2.4.3 其他方法
1.聚类分析
聚类分析源于许多研究领域,包括数据挖掘、统计学、机器学习、模式识别等。聚类分析是指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据进行聚类分析,所得到的聚类数未必一致。作为数据挖掘中的一个功能,聚类分析能作为一个独立的工具来获得数据分布的情况,并且概括出每个簇的特点,或者集中注意力对特定的某些簇做进一步分析。数据挖掘技术的一个突出特点是能处理巨大的、复杂的数据集,这对聚类分析技术提出了特殊的挑战,要求算法具有可伸缩性、可处理不同类型的属性、可发现任意形状的类及处理高维数据等。根据潜在的各项应用,数据挖掘对聚类分析方法提出了不同要求。
聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。
聚类在数据挖掘中的典型应用有以下3个方面。①聚类分析可以作为其他算法的预处理步骤:利用聚类进行数据预处理,可以获得数据的基本情况,在此基础上进行特征抽取或分类可以提高精确度和挖掘效率。也可将聚类结果用于进一步关联分析,以获得进一步的有用信息。②可以作为一个独立的工具来获得数据的分布情况:聚类分析是获得数据分布情况的有效方法。通过观察聚类得到每个簇的特点,可以集中对特定的某些簇做进一步的分析。③聚类分析可以完成孤立点挖掘。许多数据挖掘算法试图使孤立点影响最小化,或者排除它们。然而孤立点本身可能是非常有用的,如在金融欺诈探测中,孤立点可能预示着金融欺诈行为的存在。
聚类分析法有快速聚类和系统聚类。
1)快速聚类
要求事先确定分类。它不仅要求确定分类的类数,而且还需要事先确定点,也就是聚类种子,然后,根据其他点离这些种子的远近把所有点进行分类。再然后就是将这几类的中心(均值)作为新的基石,再分类。如此迭代。
2)系统聚类
系统聚类是将样品分成若干类的方法,其基本思想是:先将每个样品各看成一类,然后规定类与类之间的距离,选择距离最小的一对合并成新的一类,计算新类与其他类之间的距离,再将距离最近的两类合并,这样每次减少一类,直至所有的样品合为一类为止。
2.关联规则
关联规则挖掘是数据挖掘中研究较早而且至今仍活跃的研究方法之一。关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二阶段为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。
关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。
在客户关系管理中,通过对企业的客户数据库里的大量数据进行挖掘,可以从大量的记录中发现有趣的关联关系,找出影响市场营销效果的关键因素,为产品定位、定价与定制客户群,客户寻求、细分与保持,市场营销与推销,营销风险评估和诈骗预测等决策支持提供参考依据。
(1)Apriori算法:使用候选项集找频繁项集。
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。
可能产生大量的候选集,以及可能需要重复扫描数据库,是 Apriori算法的两大缺点。
(2)基于划分的算法。
Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。
(3)FP-树频集算法。
针对 Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。
3.因子分析
因子分析的基本目的就是用少数几个因子描述许多指标或因素之间的联系,即将相关比较密切的几个变量归在同一类中,每一类变量就成为一个因子,以较少的几个因子反映原资料的大部分信息。
运用这种研究技术,我们可以方便地找出影响消费者购买、消费和满意度的主要因素是哪些,以及这些因素的影响力如何。运用这种研究技术,我们还可以为市场细分做前期分析。
4.主成分分析
设法将原来的变量重新组合成一组新的互相无关的几个综合变量,同时根据实际需要从中可以取出几个较少的综合变量尽可能多地反映原来变量的信息的统计方法叫作主成分分析或称主分量分析,这也是数学上用来降维的一种方法。
主成分分析是设法将原来众多的具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。
最经典的做法就是用 F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即 Var(F1)越大,表示 F1包含的信息越多。因此,在所有的线性组合中选取的F1应该是方差最大的,故称 F1为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取 F2,即选第二个线性组合,为了有效地反映原来的信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1, F2)=0,则称F2为第二主成分,以此类推可以构造出第三、第四……第P个主成分。
主成分分析作为基础的数学分析方法,其实际应用十分广泛,比如人口统计学、数量地理学、分子动力学模拟、数学建模、数理分析等学科中均有应用,是一种常用的多变量分析方法。
5.神经网络方法
神经网络作为一种先进的人工智能技术,因其自身自行处理、分布存储和高度容错等特性非常适合处理非线性的以及那些以模糊、不完整、不严密的知识或数据为特征的处理问题,它的这一特点十分适合解决数据挖掘的问题。典型的神经网络模型主要分为三大类:第一类是用于分类预测和模式识别的前馈式神经网络模型,其主要代表为函数型网络、感知机。第二类是用于联想记忆和优化算法的反馈式神经网络模型,以 Hopfield的离散模型和连续模型为代表。第三类是用于聚类的自组织映射方法,以 ART模型为代表。虽然神经网络有多种模型及算法,但在特定领域的数据挖掘中使用何种模型及算法并没有统一的规则,而且人们很难理解网络的学习及决策过程。
6. Web数据挖掘
Web数据挖掘是一项综合性技术,指 Web从文档结构和使用的集合 C中发现隐含的模式P,如果将C看作是输入、P看作是输出,那么Web挖掘过程就可以看作是从输入到输出的一个映射过程。
当前越来越多的Web数据都是以数据流的形式出现的,因此对 Web数据流挖掘就具有很重要的意义。目前常用的Web数据挖掘算法有:PageRank算法,HITS算法以及LOGSOM算法。这3种算法提到的用户都是笼统的用户,并没有区分用户的个体。目前Web数据挖掘面临着一些问题,主要包括:用户的分类问题,网站内容时效性问题,用户在页面停留时间问题,页面的链入与链出数问题等。在Web技术高速发展的今天,这些问题仍旧值得研究并加以解决。
7.序列分析
序列分析是对序列数据进行分析以发现蕴藏其中的模式和规律。序列数据和时间序列数据都是连续的观测值,观测值之间相互依赖。它们之间的差别在于序列数据包含离散的状态,而时间序列是连续的数值。序列数据和关联数据比较相似,它们都是一个项集或一组状态,区别在于序列分析分析的是状态的转移,将数据间的关联性和时间联系起来,而关联分析不需要考虑时间问题。Markov链是进行序列分析的主要技术之一。
8.偏差分析
数据库中一般存在着很多异常数据,找出这些异常数据非常重要,偏差分析可以解决此类问题。偏差分析用于检测数据现状、历史记录与标准之间的显著变化和偏离,例如,观测结果与期望的偏离、分类中的反常实例、模式的例外等。偏差分析的基本方法就是寻找观察结果与参照之间的差别。例如,信用卡欺诈案行为检测、网络入侵检测、劣质产品分析等。
9.预测
预测是大数据最核心的功能。大数据预测是指运用历史数据和预测模型预测未来某件事情的概率。精度和不确定性是预测的关注点,通常用预测方差进行衡量。预测技术是以表示一系列时间值的数列作为输入,接下来运用计算机学习和统计技术对数据进行周期性分析、趋势分析和噪声分析,进而估算这些序列未来的值。例如,可以通过挖掘企业的历史销售数据预测该企业未来一年的销售额。