1.2 常用的数据挖掘算法
广义的数据挖掘是知识发现的全过程;狭义的数据挖掘是指统计分析、机器学习等发现数据模式的智能方法,即偏重于模型和算法。算法是数据挖掘的核心和精髓。
国际权威的学术组织IEEE International Conference on Data Mining(ICDM)2006年12月评选出了数据挖掘领域的十大经典算法:C4.5、K-Means、SVM、Apriori、EM、PageRank、AdaBoost、KNN、Naive Bayes和CART。
1.C4.5算法
C4.5算法是机器学习算法中的一种分类决策树算法,它是决策树核心算法ID3的改进算法。
数据挖掘技术中的决策树算法建立在信息论的基础上,是一种常用于预测模型的算法,它通过将大量数据有目的的分类,从中找到一些有价值的、潜在的信息。决策树算法在树的每个节点上,使用信息增益度量选择测试属性。决策树的根节点是所有样本中信息量最大的属性;树的中间节点是根的子树所包含的样本子集中信息量最大的属性。决策树算法的理论依据充分,具有较高的精度和效率,是一种知识获取的有用工具。
决策树算法起源于概念学习系统CLS,随后ID3算法成为一个里程碑,之后又演化为能处理连续属性的C4.5和C5.0算法。C4.5算法继承了ID3算法的优点,并在以下方面对ID3算法进行了改进:
(1)用信息增益率选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
(2)在树构造过程中进行剪枝;
(3)能够完成对连续属性的离散化处理;
(4)能够对不完整数据进行处理。
C4.5算法的优点是:产生的分类规则易于理解,准确率较高;缺点是:在构造树的过程中,需要对数据集进行多次顺序扫描和排序,因而导致算法的低效。
2.K-Means算法
K-Means(K均值)算法是数据挖掘技术中基于分裂法的一个经典的聚类算法,因为该算法的理论可靠、算法简单、收敛迅速而被广泛应用。
K-Means算法是一种常用的基于划分的聚类算法。K-Means算法是以k(k<n)为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。
K-Means算法的处理过程为:首先随机选择k个对象作为初始的k个簇的质心;然后将其余对象根据其与各个簇的质心的距离分配到最近的簇;最后重新计算各个簇的质心。不断重复此过程,直到目标函数最小为止。
3.SVM算法
支持向量机(Support Vector Machine, SVM)算法是一种监督式学习的方法,广泛应用于统计分析及回归分析中。
SVM算法将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个相互平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。
4.Apriori算法
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。
Apriori算法使用频繁项集的先验知识,使用一种称为逐层搜索的迭代算法,通过k项集探索k+1项集。首先通过扫描事务记录,找出所有的频繁1项集,该集合记作L1,然后利用L1找频繁2项集的集合L2,再由L2找L3,如此下去,直到不能再找到任何频繁k项集。最后在所有频繁项集中找出强规则,即产生用户感兴趣的关联规则。
5.EM算法
在统计计算中,最大期望(Expectation-Maximization, EM)算法是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量。
EM算法是一种迭代算法,每一次迭代都能保证似然函数值增加,并且收敛到一个局部极大值。EM算法的每一次迭代包括两步:第一步求期望值(expectation step),称为E步;第二步求极大值(maximization step),称为M步。EM算法主要用来计算基于不完全数据的极大似然估计,经常用在机器学习和计算机视觉的数据集领域。
6.PageRank算法
PageRank算法是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google公司创始人之一拉里·佩奇(Larry Page)。因此,PageRank里的Page不是指网页,而是指佩奇,即这个等级方法是以佩奇命名的。
PageRank算法根据网站的外部链接和内部链接的数量和质量衡量网站的价值。PageRank算法背后的概念是:每个到页面的链接都是对该页面的一次投票,被链接的越多,意味着被其他网站投票越多。这就是所谓的“链接流行度”,即衡量多少人愿意将他们的网站与你的网站挂钩。PageRank算法的概念来自学术中一篇论文的被引频次,即被别人引用的次数越多,一般判断这篇论文的权威性就越高。
7.AdaBoost算法
AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
AdaBoost算法本身是通过改变数据分布实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。
8.KNN算法
K最近邻(k-Nearest Neighbor, KNN)分类算法,是著名的模式识别统计学方法,理论上比较成熟。它是最好的文本分类算法之一,也是最简单的机器学习算法之一。
KNN算法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
9.朴素贝叶斯算法
朴素贝叶斯分类器(Naive Bayesian Classifier, NBC)模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。在众多的分类模型中,决策树模型和NBC模型是应用最为广泛的两种分类模型。
朴素贝叶斯分类器是一种基于贝叶斯理论的分类器。它的特点是以概率形式表达所有形式的不确定,学习和推理都由概率规则实现,学习的结果可以解释为对不同可能的信任程度。
NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比误差率最小,但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型;而在属性相关性较小时,NBC模型的性能最为良好。
10.CART算法
分类与回归树(Classification and Regression Trees, CART)算法是一种有效的非参数分类和回归方法,它通过构建二叉树达到预测的目的。
CART模型最早由Breiman等提出,已经在统计领域和数据挖掘技术中普遍使用。它采用与传统统计学完全不同的方式构建预测准则,并以二叉树的形式给出,易于理解、使用和解释。由CART模型构建的预测树,在很多情况下比常用的统计方法构建的代数学预测准则更加准确,且数据越复杂、变量越多,算法的优越性就越显著。CART模型的关键是预测准则的构建。