数据挖掘常用的十大算法
扫描二维码
随时随地手机看文章
数据挖掘(英语:Data mining),又译为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
数据挖掘经典算法 1. C4.5:是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。
解析
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法。 C4.5算法继承了ID3算法的长处。并在下面几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足。
2) 在树构造过程中进行剪枝;
3) 可以完毕对连续属性的离散化处理;
4) 可以对不完整数据进行处理。
C4.5算法有例如以下长处:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,须要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
1、机器学习中。决策树是一个预測模型。他代表的是对象属性与对象值之间的一种映射关系。树中每一个节点表示某个对象,而每一个分叉路径则代表的某个可能的属性值,而每一个叶结点则
相应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出。若欲有复数输出,能够建立独立的决策树以处理不同输出。
2、 从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。
3、决策树学习也是数据挖掘中一个普通的方法。在这里,每一个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类。每一个决策树能够依靠对源数据库的切割
进行数据測试。
这个过程能够递归式的对树进行修剪。
当不能再进行切割或一个单独的类能够被应用于某一分支时。递归过程就完毕了。
另外。随机森林分类器将很多决策树结合起来
以提升分类的正确率。
2. K-means算法:是一种聚类算法。术语“k-means”最早是由James MacQueen在1967年提出的。这一观点能够追溯到1957年 Hugo Steinhaus所提出的想法。1957年。斯图亚特·劳埃德最先提出这一标准算法,当初是作为一门应用于脉码调制的技术,直到1982年,这一算法才在贝尔实验室被正式提出。1965年。 E.W.Forgy发表了一个本质上是同样的方法。1975年和1979年。HarTIgan和Wong分别提出了一个更高效的版本号。
算法描写叙述
输入:簇的数目k;包括n个对象的数据集D。
输出:k个簇的集合。
方法:
从D中随意选择k个对象作为初始簇中心;
repeat;
依据簇中对象的均值。将每一个对象指派到最相似的簇;
更新簇均值。即计算每一个簇中对象的均值;
计算准则函数;
unTIl准则函数不再发生变化。
3. SVM:一种监督式学习的方法
广泛运用于统计分类以及回归分析中支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一
种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。
支持向量机属于一般化线性分类器。他们也可以觉得是提克洛夫规范化(TIkhonov RegularizaTIon)方法的一个特例。这族分类器的特点是他们可以同一时候最小化经验误差与最大化
几何边缘区。因此支持向量机也被称为最大边缘区分类器。在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找參数最大似然预计的算法。当中概率模型依赖于无
法观測的隐藏变量(Latent Variabl)。
最大期望经经常使用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。
最大期望算法经过两个步骤交替进行计算:
第一步是计算期望(E),也就是将隐藏变量象可以观測到的一样包括在内从而计算最大似然的期望值;
另外一步是最大化(M),也就是最大化在 E 步上找到的最大似然的期望值从而计算參数的最大似然预计。
M 步上找到的參数然后用于另外一个 E 步计算,这个过程不断交替进行。
Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了还有一种设计最佳准则。其原理也从线性可分说起,然后扩展到线性不可分的情况。
甚至扩展到使用非线性函数中去,这
种分类器被称为支持向量机(Support Vector Machine,简称SVM)。支持向量机的提出有非常深的理论背景。支持向量机方法是在近年来提出的一种新方法。
SVM 的主要思想能够概括为两点:
(1) 它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使
其线性可分,从而使得高维特征空间採用线性算法对样本的非线性特征进行线性分析成为可能;
(2) 它基于结构风险最小化理论之上在特征空间中建构最优切割超平面,使得学习器得到全局最优化,而且在整个样本空间的期望风险以某个概率满足一定上界。
在学习这样的方法时,首先要弄清楚这样的方法考虑问题的特点,这就要从线性可分的最简单情况讨论起,在没有弄懂其原理之前,不要急于学习线性不可分等较复杂的情况,支持向量机
在设计时。须要用到条件极值问题的求解。因此需用拉格朗日乘子理论。但对多数人来说。曾经学到的或经常使用的是约束条件为等式表示的方式。但在此要用到以不等式作为必须满足的条件,此时仅仅要了解拉格朗日理论的有关结论即可。
4. Apriori :是一种最有影响的挖掘布尔关联规则频繁项集的算法。Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法。它的核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。
在这里,全部支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集。
在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:算法须要对数据集进行多步处理。第一步,简单统计全部含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集。从第二步開始循环处理直到再没有最大项目集生成。循环过程是:第k步中,依据第k-1步生成的(k-1)维最大项目集产生k维侯选项目集。然后对数据库进行搜索,得到侯选项目集的项集支持度。与最小支持度进行比較,从而找到k维最大项目集。
从算法的执行过程。我们能够看出该Apriori算法的长处:简单、易理解、数据要求低。然而我们也能够看到Apriori算法的缺点:
(1)在每一步产生侯选项目集时循环产生的组合过多,没有排除不应该參与组合的元素;
(2)每次计算项集的支持度时,都对数据库D中的所有记录进行了一遍扫描比較。假设是一个大型的数据库的话,这样的扫描比較会大大添加计算机系统的I/O开销。而这样的代价是随着数据库的记录的添加呈现出几何级数的添加。
因此人们開始寻求更好性能的算法。如F-P算法。
5. EM:最大期望值法。最大期望算法(Expectation-maximization algorithm。又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,參数的最大似然预计。
在统计计算中,最大期望(EM)算法是在概率模型中寻找參数最大似然预计或者最大后验预计的算法。当中概率模型依赖于无法观測的隐藏变量(Latent Variable)。最大期望经经常使用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。
最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有预计值,计算其最大似然预计值;第二步是最大化(M)。最大化在 E 步上求得的最大似然值来计算參数的值。M 步上找到的參数预计值被用于下一个 E 步计算中,这个过程不断交替进行。
M是一个在已知部分相关变量的情况下,预计未知变量的迭代技术。EM的算法流程例如以下:
1. 初始化分布參数
2. 反复直到收敛:
E步骤:预计未知參数的期望值,给出当前的參数预计。
M步骤:又一次预计分布參数,以使得数据的似然性最大,给出未知变量的期望预计。
应用于缺失值
最大期望过程说明
我们用 表示可以观察到的不完整的变量值,用 表示无法观察到的变量值,这样 和 一起组成了完整的数据。
可能是实际測量丢失的数据,也可能是可以简化问题的隐藏变量,假设它的值可以知道的话。比如,在混合模型(Mixture Model)中,假设“产生”样本的混合元素成分已知的话最大似然公式将变得更加便利(參见以下的样例)。
6.pagerank:是google算法的重要内容。
PageRank。网页排名,又称网页级别、Google左側排名或佩奇排名,是一种由搜索引擎依据网页之间相互的超链接计算的技术,而作为网页排名的要素之中的一个,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是常常被用来评估网页优化的成效因素之中的一个。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。
PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。
Google把从A页面到B页面的链接解释为A页面给B页面投票。Google依据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。
简单的说,一个高等级的页面能够使其它低等级页面的等级提升。
7、Adaboost:是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器然后把弱分类器集合起来,构成一个更强的最终分类器。AdaBoost。是英文“Adaptive Boosting”(自适应增强)的缩写,是一种机器学习方法。由Yoav Freund和Robert Schapire提出。
AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据非常敏感。但在一些问题中。AdaBoost方法相对于大多数其他学习算法而言。不会非常easy出现过拟合现象。
AdaBoost方法中使用的分类器可能非常弱(比方出现非常大错误率),但仅仅要它的分类效果比随机好一点(比方两类问题分类错误率略小于0.5),就行改善终于得到的模型。而错误率高于随机分类器的弱分类器也是实用的,由于在终于得到的多个分类器的线性组合中,可以给它们赋予负系数,相同也能提升分类效果。
AdaBoost方法是一种迭代算法。在每一轮中增加一个新的弱分类器,直到达到某个预定的足够小的错误率。每个训练样本都被赋予一个权重。表明它被某个分类器选入训练集的概率。
假设某个样本点已经被准确地分类,那么在构造下一个训练集中,它被选中的概率就被减少;
相反。假设某个样本点没有被准确地分类,那么它的权重就得到提高。通过这种方式,AdaBoost方法能“聚焦于”那些较难分(更富信息)的样本上。
在详细实现上,最初令每一个样本的权重都相等,对于第k次迭代操作。我们就依据这些权重来选取样本点,进而训练分类器Ck。然后就依据这个分类器,来提高被它分错的的样本的权重,并减少被正确分类的样本权重。
然后,权重更新过的样本集被用于训练下一个分类器Ck[2]。整个训练过程如此迭代地进行下去。
8、KNN:是一个理论上比较成熟的的方法,也是最简单的机器学习方法之一。1、K近期邻(k-Nearest Neighbor。KNN)分类算法。是一个理论上比較成熟的方法。也是最简单的机器学习算法之中的一个。该方法的思路是:假设一个样本在特征空间中的k个最相似(即特征空
间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
2、KNN算法中,所选择的邻居都是已经正确分类的对象。
该方法在定类决策上仅仅根据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN方法尽管从原理上也依赖于极限定理。但在类别决策时,仅仅与极少量的相邻样本有关。因为KNN方法主要靠周围有限的邻近的样本。
而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其它方法更为适合。
3、KNN算法不仅能够用于分类,还能够用于回归。通过找出一个样本的k个近期邻居,将这些邻居的属性的平均值赋给该样本,就能够得到该样本的属性。
更实用的方法是将不同距离的
邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。
4、该算法在分类时有个基本的不足是,当样本不平衡时,如一个类的样本容量非常大,而其它类样本容量非常小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。因此能够採用权值的方法(和该样本距离小的邻居权值大)来改进。
该方法不足之处是计算量较大,由于对每个待分类的文本都要计算它到全体已知样本的距离。才干求得它的K个近期邻点。
眼下经常使用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比較适用于样本容量比較大的类域的自己主动分类,而那些样本容量较小的类域採用这样的算法比較easy产生误分。
算法分类步骤例如以下:
1 首先我们事先定下k值(就是指k近邻方法的k的大小。代表对于一个待分类的数据点,我们要寻找几个它的邻居)。这边为了说明问题,我们取两个k值。分别为3和9;
2 依据事先确定的距离度量公式(如:欧氏距离)。得出待分类数据点和全部已知类别的样本点中。距离近期的k个样本。
3 统计这k个样本点中。各个类别的数量。依据k个样本中,数量最多的样本是什么类别,我们就把这个数据点定为什么类别。
9、Naive Bayes:在众多分类方法中,应用最广泛的有决策树模型和朴素贝叶斯(Naive Bayes)贝叶斯分类的基础是概率推理。就是在各种条件的存在不确定。仅知其出现概率的情况下,怎样完毕推理和决策任务。概率推理是与确定性推理相相应的。
而朴素贝叶斯分类器是基于独立如果的,即如果样本每一个特征与其它特征都不相关。举个样例,如果一种水果其具有红。圆,直径大概4英寸等特征。该水果能够被判定为是苹果。
虽然这些特征相互依赖或者有些特征由其它特征决定。然而朴素贝叶斯分类器觉得这些属性在判定该水果是否为苹果的概率分布上独立的。朴素贝叶斯分类器依靠精确的自然概率模型,在有监督学习的样本集中能获取得很好的分类效果。在很多实际应用中。朴素贝叶斯模型參数预计使用最大似然预计方法。换而言之朴素贝叶斯模型能工作并没实用到贝叶斯概率或者不论什么贝叶斯模型。
虽然是带着这些朴素思想和过于简单化的如果,但朴素贝叶斯分类器在非常多复杂的现实情形中仍可以取得相当好的效果。2004年。一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理论上的原因。
虽然如此,2006年有一篇文章具体比較了各种分类方法,发现更新的方法(如boosted trees和随机森林)的性能超过了贝叶斯分类器。
朴素贝叶斯分类器的一个优势在于仅仅须要依据少量的训练数据预计出必要的參数(变量的均值和方差)。因为变量独立如果,仅仅须要预计各个变量的方法。而不须要确定整个协方差矩阵。
10、Cart:分类与回归树,在分类树下面有两个关键的思想,第一个是关于递归地划分自变量空间的想法,第二个是用验证数据进行减枝。
决策树生长的核心是确定决策树的分枝准则。
1、 怎样从众多的属性变量中选择一个当前的最佳分支变量。
也就是选择能使异质性下降最快的变量。
异质性的度量:GINI、TWOING、least squared deviation。
前两种主要针对分类型变量,LSD针对连续性变量。
代理划分、加权划分、先验概率
2、 怎样从分支变量的众多取值中找到一个当前的最佳切割点(切割阈值)。
(1) 切割阈值:
A、数值型变量——对记录的值从小到大排序,计算每一个值作为临界点产生的子节点的异质性统计量。
可以使异质性减小程度最大的临界值便是最佳的划分点。
B、分类型变量——列出划分为两个子集的全部可能组合。计算每种组合下生成子节点的异质性。相同。找到使异质性减小程度最大的组合作为最佳划分点。
在决策树的每个节点上我们能够按任一个属性的任一个值进行划分。按哪种划分最好呢?有3个标准能够用来衡量划分的好坏:GINI指数、双化指数、有序双化指数。