机器学习(数据挖掘十个重要算法)

数据挖掘中经常使用的十个重要算法算法

 1、 C4.5 
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的长处。并在下面几方面对ID3算法进行了改进: 
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足。 
2) 在树构造过程当中进行剪枝; 
3) 能够完毕对连续属性的离散化处理; 
4) 能够对不完整数据进行处理。 
C4.5算法有例如如下长处:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程当中,需要对数据集进行屡次的顺序扫描和排序,于是致使算法的低效。数据库

一、机器学习中。决策树是一个预測模型。他表明的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则表明的某个可能的属性值,而每个叶结点则
相应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出。若欲有复数输出,可以创建独立的决策树以处理不一样输出。swift

 
二、 从数据产生决策树的机器学习技术叫作决策树学习,  通俗说就是决策树。 
三、决策树学习也是数据挖掘中一个普通的方法。在这里,每个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的切割
进行数据測试。api

这个过程可以递归式的对树进行修剪。网络

当不能再进行切割或一个单独的类可以被应用于某一分支时。递归过程就完毕了。机器学习

另外。随机森林分类器将不少决策树结合起来
以提高分类的正确率。函数

 

决策树是怎样工做的? 
一、决策树通常都是自上而下的来生成的。工具

 
二、选择切割的方法有好几种,但是目的都是一致的:对目标类尝试进行最佳的切割。性能

 
三、从根到叶子节点都有一条路径,这条路径就是一条―规则 
四、决策树可以是二叉的,也可以是多叉的。 
对每个节点的衡量: 
1)         经过该节点的记录数 
2)         假设是叶子节点的话,分类的路径 
3)         对叶子节点正确分类的比例。 
有些规则的效果可以比其它的一些规则要好。学习

 
由于ID3算法在实际应用中存在一些问题。因而Quilan提出了C4.5算法,严格上说C4.5仅仅能是ID3的一个改进算法。相信你们对ID3算法都很是.熟悉了,这里就不作介绍。 
C4.5算法继承了ID3算法的长处,并在下面几方面对ID3算法进行了改进: 
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程当中进行剪枝。 
3) 能够完毕对连续属性的离散化处理; 
4) 能够对不完整数据进行处理。 
C4.5算法有例如如下长处:产生的分类规则易于理解,准确率较高。

其缺点是:在构造树的过程当中。需要对数据集进行屡次的顺序扫描和排序,于是致使算法的低效。

此外,C4.5仅仅适合于
能够驻留于内存的数据集。当训练集大得没法在内存容纳时程序没法执行。  来自搜索的其它内容: 
 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法.  分类决策树算法是从大量事例中进行提取分类规则的自上而下的决策树. 决策树的各部分是: 
             根:    学习的事例集. 
             枝:    分类的断定条件. 
             叶:    分好的各个类. 

 ID3算法 
   1.概念提取算法CLS 
1)      初始化參数C={E},E包含所有的样例,为根. 
2)        IF      C中的任一元素e同属于同一个决策类则建立一个叶子     
               节点YES终止. 
           ELSE      依启示式标准,选择特征Fi={V1,V2,V3,...Vn}并建立 
                       断定节点 
  
划分C为互不相交的N个集合C1,C2,C3,...,Cn。 
3)      对任一个Ci递归. 
    2.      ID3算法 
1)      随机选择C的一个子集W    (窗体). 
2)      调用CLS生成W的分类树DT(强调的启示式标准在后). 
3)      顺序扫描C搜集DT的意外(即由DT没法肯定的样例). 
4)      组合W与已发现的意外,造成新的W. 
 
 
5)      反复2)到4),直到无例外为止. 
  
启示式标准: 
       仅仅跟自己与其子树有关,採取信息理论用熵来量度. 
       熵是选择事件时选择自由度的量度,其计算方法为 
               P    =    freq(Cj,S)/|S|; 
       INFO(S)=    -    SUM(    P*LOG(P)    )    ;        SUM()函数是求j 从1到n和. 
       Gain(X)=Info(X)-Infox(X); 
       Infox(X)=SUM(    (|Ti|/|T|)*Info(X); 
为保证生成的决策树最小,ID3 算法在生成子树时,选取使生成的子树的熵(即Gain(S))最小的
的特征来生成子树. 
  
  三、  ID3算法对数据的要求 
1).      所有属性必须为离散量. 
2).      所有的训练例的所有属性必须有一个明白的值. 
3).      一样的因素必须获得一样的结论且训练例必须惟一. 
  
   C4.5对ID3算法的改进: 
       1.      熵的改进,加上了子树的信息. 
             Split_Infox(X)=    -    SUM(      (|T|/|Ti|    )    *LOG(|Ti|/|T|)      ); 
             Gain    ratio(X)=      Gain(X)/Split    Infox(X); 
        2.      在输入数据上的改进. 
         1) 
因素属性的值可以是连续量,C4.5 对其排序并分红不一样的集合后依照ID3 算法看成离散量进行处理,但结论属性的值必须是离散值. 
       2)    训练例的因素属性值可以是不肯定的,以    ?    表示,但结论必须是肯定的 
       3.      对已生成的决策树进行裁剪,减少生成树的规模.

2、数据挖掘十大经典算法(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准则函数再也不发生变化。


算法的性能分析
   1)长处
(1)k-平均算法是解决聚类问题的一种经典算法,算法简单、高速。
(2)对处理大数据集,该算法是相对可伸缩的和高效率的。因为它的复杂度大约是O(nkt),当中n是所有对象的数目,k是簇的数目,t是迭代的次数。

一般k<<n。这个算法经常以局部最优结束。
(3)算法尝试找出使平方偏差函数值最小的k个划分。当簇是密集的、球状或团状的,而簇与簇之间差异明显时,它的聚类效果很是好。
   2)缺点
(1)k-平均方法仅仅有在簇的平均值被定义的状况下才干使用。不适用于某些应用。如涉及有分类属性的数据不适用。
(2)要求用户必须事先给出要生成的簇的数目k。


(3)对初值敏感。对于不一样的初始值。可能会致使不一样的聚类结果。


(4)不适合于发现非凸面形状的簇,或者大小区别很是大的簇。
(5)对于"噪声"和孤立点数据敏感,少许的该类数据能够对平均值产生极大影响。
算法的改进
针对算法存在的问题,对K-means算法提出一些改进:
一是数据预处理,
二是初始聚类中心选择。
三是迭代过程当中聚类种子的选择。
一、首先对样本数据进行正规化处理,这样就能防止某些大值属性的数据左右样本间的距离。给定一组含有n个数据的数据集,每一个数据含有m个属性。分别计算每一个属性的均值、标准差对每条数据进行标准化。


三、其次,初始聚类中心的选择对最后的聚类效果有很是大的影响,原K-means算法是随机选取k个数据做为聚类中心,而聚类的结果要是同类间尽量类似,不一样类间尽量相异,因此初始聚类中心的选取要尽量作到这一点。

採用基于距离和的孤立点定义来进行孤立点的预先筛选,并利用两两数据之间的最大距离在剩余数据集合中寻找初始聚类中心。但对于实际数据。孤立点个数每每不可预知。在选择初始聚类中心时,先将孤立点归入统计范围。在样本中计算对象两两之间的距离,选出距离最大的两个点做为两个不一样类的聚类中心,接着从其他的样本对象中找出已经选出来的所有聚类中心的距离和最大的点为还有一个聚类中心,直到选出k个聚类中心。

这样作就减小了样本输入顺序对初始聚类中心选择的影响。

聚类中心选好之后,就要进行不断的迭代计算,在K-means算法中。是将聚类均值点(类中所有数据的几何中心点)做为新的聚类种子进行新一轮的聚类计算,在这样的状况下。新的聚类种子可能偏离真正的数据密集区,从而致使误差,特别是在有孤立点存在的状况下,有很是大的局限性。在选择初始中心点时,因为将孤立点计算在内,因此在迭代过程当中要避免孤立点的影响

这里依据聚类种子的计算时,採用簇中那些与第k-1轮聚类种子类似度较大的数据,计算他们的均值点做为第k轮聚类的种子,至关于将孤立点排除在外。孤立点不參与聚类中心的计算。这样聚类中心就不会因为孤立点的缘由而明显偏离数据集中的地方。在计算聚类中心的时候。要运用必定的算法将孤立点排除在计算均值点那些数据以外,这里主要採用类中与聚类种子类似度大于某一阈值的数据组成每个类的一个子集。计算子集中的均值点做为下一轮聚类的聚类种子。

为了能让不少其它的数据參与到聚类中心的计算种去,阈值范围要包括大多数的数据。

在第k-1轮聚类得到的类。计算该类中所有数据与该类聚类中心的平均距离S,选择类中与聚类种子类似度大于2S的数据组成每个类的一个子集,以此子集的均值点做为第k轮聚类的聚类种子。在数据集中无论是否有明显的孤立点存在。两倍的平均距离都能包括大多数的数据。

对孤立点的改进—基于距离法
经典k均值算法中没有考虑孤立点。所谓孤立点都是基于距离的, 是数据U集中到U中近期邻居的距离最大的对象, 换言之, 数据集中与其近期邻居的平均距离最大的对象。针对经典k均值算法易受孤立点的影响这一问题, 基于距离法移除孤立点, 详细步骤例如如下:
首先扫描一次数据集, 计算每一个数据对象与其临近对象的距离, 累加求其距离和, 并计算出距离和均值。假设某个数据对象的距离和大于距离和均值, 则视该点为孤立点。把这个对象从数据集中移除到孤立点集合中, 反复直到所有孤立点都找到。

最后获得新的数据集就是聚类的初始集合。



对随机选取初始聚类中心的改进
经典k均值算法随机选取k个点做为初始聚类中心进行操做。由于是随机选取, 则变化较大, 初始点选取不一样, 得到聚类的结果也不一样。并且聚类分析获得的聚类的准确率也不同。

对k均值算法的初始聚类中心选择方法—随机法进行改进, 其根据是聚类过程当中一样聚类中的对象是类似的, 相异聚类中的对象是不类似的。

所以提出了一种基于数据对象两两间的距离来动态寻找并肯定初始聚类中心的思路, 详细步骤例如如下:
首先整理移除孤立点后的数据集U,记录数据个数y,令m=1。比較数据集中所有数据对象两两之间的距离。找出距离近期的2个数据对象造成集合Am;比較Am中每一个数据对象与数据对象集合U中每一个对象的距离,在U中找出与Am 中近期的数据对象,优先吸取到Am 中,直到Am 中的数据对象个数到达必定数值,而后令m=m+1。

再从U中找到对象两两间距离近期的2个数据对象构成Am,反复上面的过程,直到造成k个对象集合。这些集合内部的数据是类似的,而集合间是相异的。

 

可以看出,这样的聚类方法同一时候知足下面2个条件:①每个组至少包括一个数据对象; ②每个数据对象必须属于且仅属于一个组。

即数据对象Xi ∈Ai ,且U={{A1 ∪A2 ∪…∪Ak} ∪A0} ,且Ai ∩Aj =Φ。最后对k个对象集合分别进行算术平均,造成k个初始聚类中心。
 
近似的k平均算法已经被设计用于原始数据子集的计算。 从算法的表现上来讲,它并不保证必定获得全局最优解,终于解的质量很是大程度上取决于初始化的分组。由于该算法的速度很是快。所以常用的一种方法是屡次执行k平均算法,选择最优解。 
k平均算法的一个缺点是,分组的数目k是一个输入參数,不合适的k可能返回较差的结果。

另外,算法还若是均方偏差是计算群组分散度的最佳參数。

3、数据挖掘十大经典算法(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) 它基于结构风险最小化理论之上在特征空间中建构最优切割超平面,使得学习器获得全局最优化,并且在整个样本空间的指望风险以某个几率知足必定上界。 
在学习这样的方法时,首先要弄清楚这样的方法考虑问题的特色,这就要从线性可分的最简单状况讨论起,在没有弄懂其原理以前,不要急于学习线性不可分等较复杂的状况,支持向量机

在设计时。需要用到条件极值问题的求解。所以需用拉格朗日乘子理论。但对多数人来讲。曾经学到的或常用的是约束条件为等式表示的方式。但在此要用到以不等式做为必须知足的条件,此时仅仅要了解拉格朗日理论的有关结论便可。 
  
介绍 
支持向量机将向量映射到一个更高维的空间里,在这个空间里创建有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。

 

假定平行超平面间的距离或差距越大,分类器的总偏差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和  Barnard 将支持向量机和其它分类器进行了比較。 
  
  
动机

有很是多个分类器(超平面)能够把数据分开,但是仅仅有一个能够达到最大切割。 咱们一般但愿分类的过程是一个机器学习的过程。

这些数据点并不需要是中的点。而能够是随意(统计学符号)中或者  (计算机科学符号) 的点。咱们但愿能够把这些点经过一个n-1维的超平面分开,一般这个被称为线性分类器。有很是多分类器都符合这个要求,但是咱们还但愿找到分类最佳的平面。即便得属于两个不一样类的数据点间隔最大的那个面。该面亦称为最大间隔超平面。

假设咱们能够找到这个面。那么这个分类器就称为最大间隔分类器。

 
  
4、数据挖掘十大经典算法(4)Apriori 
Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法。它的核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。

在这里,所有支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集。
在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:算法需要对数据集进行多步处理。第一步,简单统计所有含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集。从第二步開始循环处理直到再没有最大项目集生成。循环过程是:第k步中,依据第k-1步生成的(k-1)维最大项目集产生k维侯选项目集。而后对数据库进行搜索,获得侯选项目集的项集支持度。与最小支持度进行比較,从而找到k维最大项目集。

从算法的执行过程。咱们可以看出该Apriori算法的长处:简单、易理解、数据要求低。然而咱们也可以看到Apriori算法的缺点:

(1)在每一步产生侯选项目集时循环产生的组合过多,没有排除不该该參与组合的元素;

(2)每次计算项集的支持度时,都对数据库D中的全部记录进行了一遍扫描比較。假设是一个大型的数据库的话,这样的扫描比較会大大添加计算机系统的I/O开销。而这样的代价是随着数据库的记录的添加呈现出几何级数的添加。

所以人们開始寻求更好性能的算法。如F-P算法。

 

5、数据挖掘十大经典算法(5) EM 
 最大指望算法(Expectation-maximization algorithm。又译指望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的几率模型中,參数的最大似然预计。
在统计计算中,最大指望(EM)算法是在几率模型中寻找參数最大似然预计或者最大后验预计的算法。当中几率模型依赖于没法观測的隐藏变量(Latent Variable)。最大指望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。

最大指望算法通过两个步骤交替进行计算,第一步是计算指望(E),利用对隐藏变量的现有预计值,计算其最大似然预计值;第二步是最大化(M)。最大化在 E 步上求得的最大似然值来计算參数的值。M 步上找到的參数预计值被用于下一个 E 步计算中,这个过程不断交替进行。

 

M是一个在已知部分相关变量的状况下,预计未知变量的迭代技术。EM的算法流程例如如下:

  1. 初始化分布參数
  2. 反复直到收敛:
    1. E步骤:预计未知參数的指望值,给出当前的參数预计。

       

       

    2. M步骤:又一次预计分布參数,以使得数据的似然性最大,给出未知变量的指望预计。

       

       

应用于缺失值

最大指望过程说明
咱们用  表示能够观察到的不完整的变量值,用  表示没法观察到的变量值,这样  和  一块儿组成了完整的数据。

 

多是实际測量丢失的数据,也多是能够简化问题的隐藏变量,假设它的值能够知道的话。好比,在混合模型(Mixture Model)中,假设“产生”样本的混合元素成分已知的话最大似然公式将变得更加便利(參见如下的样例)。



预计没法观測的数据
让  表明矢量 :  定义的參数的全部数据的几率分布(连续状况下)或者几率聚类函数(离散状况下),那么从这个函数就可以获得全部数据的最大似然值,另外。在给定的观察到的数据条件下未知数据的条件分布可以表示为:

 

 


6、数据挖掘十大经典算法(6) PageRank 

PageRank。网页排名,又称网页级别、Google左側排名或佩奇排名,是一种由搜索引擎依据网页之间相互的超连接计算的技术,而做为网页排名的要素之中的一个,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操做中是经常被用来评估网页优化的成效因素之中的一个。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。


PageRank经过网络浩瀚的超连接关系来肯定一个页面的等级。

Google把从A页面到B页面的连接解释为A页面给B页面投票。Google依据投票来源(甚至来源的来源,即连接到A页面的页面)和投票目标的等级来决定新的等级。

简单的说,一个高等级的页面可以使其它低等级页面的等级提高。

PageRank让连接来"投票"
一个页面的“得票数”由所有链向它的页面的重要性来决定,到一个页面的超连接至关于对该页投一票。一个页面的PageRank是由所有链向它的页面(“链入页面”)的重要性通过递归算法获得的。一个有较多链入的页面会有较高的等级,相反假设一个页面没有不论什么链入页面。那么它没有等级。
2005年初。Google为网页连接推出一项新属性nofollow,使得站点管理员和网志做者可以作出一些Google不计票的连接,也就是说这些连接不算做"投票"。nofollow的设置可以抵制垃圾评论。
Google工具条上的PageRank指标从0到10。它彷佛是一个对数标度算法,细节未知。PageRank是Google的商标。其技术亦已经申请专利。
PageRank算法中的点击算法是由Jon Kleinberg提出的。

PageRank算法

1.PageRank 
基本思想:假设网页T存在一个指向网页A的链接,则代表T的所有者以为A比較重要。从而把T的一部分重要性得分赋予A。这个重要性得分值为:PR(T)/C(T) 
当中PR(T)为T的PageRank值。C(T)为T的出链数。则A的PageRank值为一系列相似于T的页面重要性得分值的累加。 
长处:是一个与查询无关的静态算法,所有网页的PageRank值经过离线计算得到;有效下降在线查询时的计算量,极大下降了查询响应时间。

 
不足:人们的查询具备主题特征,PageRank忽略了主题相关性,致使结果的相关性和主题性减小;另外。PageRank有很是严重的对新网页的鄙视。 
2.Topic-Sensitive PageRank(主题敏感的PageRank) 
基本思想:针对PageRank对主题的忽略而提出。核心思想:经过离线计算出一个  PageRank向量集合。该集合中的每一个向量与某一主题相关,即计算某个页面关于不一样主题的得分。
主要分为两个阶段:主题相关的PageRank向量集合的计算和在线查询时主题的肯定。 

 

长处:依据用户的查询请求和相关上下文推断用户查询相关的主题(用户的兴趣)返回查询结果准确性高。 
不足:没有利用主题的相关性来提升连接得分的准确性。

 
3.Hilltop 
基本思想:与PageRank的不一样之处:仅考虑专家页面的连接。主要包含两个步骤:专家页面搜索和目标页面排序。 
长处:相关性强,结果准确。

 
不足:专家页面的搜索和肯定对算法起关键做用,专家页面的质量决定了算法的准确性,而
 
专家页面的质量和公平性难以保证。忽略了大量非专家页面的影响,不能反应整个Internet的民意;当没有足够的专家页面存在时,返回空,因此Hilltop适合对于查询排序进行求精。 
那么影响google PageRank的因素有哪些呢? 
1 与pr高的站点作连接: 
2 内容质量高的站点连接 
3增长搜索引擎分类文件夹 
4 增长免费开源文件夹 
5 你的连接出现在流量大、知名度高、频繁更新的重要站点上 
6 google对DPF格式的文件比較看重。 
7 安装Google工具条 
8 域名和tilte标题出现关键词与meta标签等 
9 反向链接数量和反向链接的等级 
10 Google抓取您站点的页面数量 
11导出连接数量

 

 

7、数据挖掘十大经典算法(7) AdaBoost 

AdaBoost。是英文"Adaptive Boosting"(自适应加强)的缩写,是一种机器学习方法。由Yoav Freund和Robert Schapire提出。

AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据很是敏感。但在一些问题中。AdaBoost方法相对于大多数其余学习算法而言。不会很是easy出现过拟合现象。

AdaBoost方法中使用的分类器可能很是弱(比方出现很是大错误率),但仅仅要它的分类效果比随机好一点(比方两类问题分类错误率略小于0.5),就行改善终于获得的模型。而错误率高于随机分类器的弱分类器也是实用的,因为在终于获得的多个分类器的线性组合中,能够给它们赋予负系数,相同也能提高分类效果。


AdaBoost方法是一种迭代算法。在每一轮中增长一个新的弱分类器,直到达到某个预约的足够小的错误率。每一个训练样本都被赋予一个权重。代表它被某个分类器选入训练集的几率。

假设某个样本点已经被准确地分类,那么在构造下一个训练集中,它被选中的几率就被减小;

相反。假设某个样本点没有被准确地分类,那么它的权重就获得提升。经过这种方式,AdaBoost方法能“聚焦于”那些较难分(更富信息)的样本上。

 

在详细实现上,最初令每个样本的权重都相等,对于第k次迭代操做。咱们就依据这些权重来选取样本点,进而训练分类器Ck。而后就依据这个分类器,来提升被它分错的的样本的权重,并减小被正确分类的样本权重。

而后,权重更新过的样本集被用于训练下一个分类器Ck[2]。整个训练过程如此迭代地进行下去。

Adaboost算法的详细过程例如如下: 
1. 给定训练样本集  ,当中  分别相应于正例样本和负例样本。  为训练的最大循环次数; 
2. 初始化样本权重  ,即为训练样本的初始几率分布。 
3. 第一次迭代: 
(1)  训练样本的几率分布  下,训练弱分类器: 
(2) 计算弱分类器的错误率: 
(3) 选取  。使得  最小 
(4) 更新样本权重: 
(5) 终于获得的强分类器: 
Adaboost算法是通过调整的Boosting算法,其能够对弱学习获得的弱分类器的错误进行适应
性调整。上述算法中迭代了次的主循环,每一次循环依据当前的权重分布对样本x定一个分
布P,而后对这个分布下的样本使用若学习算法获得一个错误率为的弱分类器  。对于这个算
法定义的弱学习算法,对所有的  ,都有,而这个错误率的上限并不需要事先知道,实际上。


每一次迭代。都要对权重进行更新。

更新的规则是:减少弱分类器分类效果较好的数据的概
率。增大弱分类器分类效果较差的数据的几率。

终于的分类器是个弱分类器的加权平均。

 

8、数据挖掘十大经典算法(8) kNN 

一、K近期邻(k-Nearest  Neighbor。KNN)分类算法。是一个理论上比較成熟的方法。也是最简单的机器学习算法之中的一个。该方法的思路是:假设一个样本在特征空间中的k个最类似(即特征空
间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
二、KNN算法中,所选择的邻居都是已经正确分类的对象。

该方法在定类决策上仅仅根据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

 KNN方法尽管从原理上也依赖于极限定理。但在类别决策时,仅仅与极少许的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本。
而不是靠判别类域的方法来肯定所属类别的,所以对于类域的交叉或重叠较多的待分样本集来讲,KNN方法较其它方法更为适合。

 
三、KNN算法不只可以用于分类,还可以用于回归。经过找出一个样本的k个近期邻居,将这些邻居的属性的平均值赋给该样本,就可以获得该样本的属性。

更实用的方法是将不一样距离的
邻居对该样本产生的影响给予不一样的权值(weight),如权值与距离成正比。 
四、该算法在分类时有个基本的不足是,当样本不平衡时,如一个类的样本容量很是大,而其它类样本容量很是小时,有可能致使当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。所以可以採用权值的方法(和该样本距离小的邻居权值大)来改进。

 

      该方法的还有一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离。才干求得它的K个近期邻点。

眼下常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类做用不大的样本。该算法比較适用于样本容量比較大的类域的本身主动分类,而那些样本容量较小的类域採用这样的算法比較easy产生误分。
算法分类步骤例如如下:
1 首先咱们事先定下k值(就是指k近邻方法的k的大小。表明对于一个待分类的数据点,咱们要寻找几个它的邻居)。这边为了说明问题,咱们取两个k值。分别为3和9;
2 依据事先肯定的距离度量公式(如:欧氏距离)。得出待分类数据点和所有已知类别的样本点中。距离近期的k个样本。
3 统计这k个样本点中。各个类别的数量。依据k个样本中,数量最多的样本是什么类别,咱们就把这个数据点定为何类别。



训练样本是多维特征空间向量。当中每个训练样本带有一个类别标签。

算法的训练阶段仅仅包括存储的特征向量和训练样本的标签。

在分类阶段。k是一个用户定义的常数。一个没有类别标签的向量 (查询或測试点)将被归类为最接近该点的K个样本点中最频繁使用的一类。

 普通状况下,将欧氏距离做为距离度量。但是这是仅仅适用于连续变量。

在文本分类这样的非连续变量状况下,

还有一个度量——重叠度量(或海明距离)可以用来做为度量。

一般状况下。假设运用一些特殊的算法来计算度量的话。K近邻分类精度可显著提升。如运用大边缘近期邻法或者近邻成分分析法。

“多数表决”分类的一个缺点是出现频率较多的样本将会主导測试点的预測结果。那是因为他们比較大可能出现在測试点的K邻域而測试点的属性又是经过K领域内的样本计算出来的。

解决这个缺点的方法之中的一个是在进行分类时将样本到測试点的距离考虑进去。
K值得选择
怎样选择一个最佳的K值取决于数据。普通状况下。在分类时较大的K值能够减少噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值能经过各类启示式技术来获取,比方,交叉验证。
噪声和非相关性特征向量的存在会使K近邻算法的准确性减少。对于选择特征向量进行分类已经做了很是多研究。

一个广泛的作法是利用进化算法优化功能扩展[3]。另外一种较广泛的方法是利用训练样本的互信息进行选择特征。



K近邻算法也适用于连续变量预计。比方适用反距离加权平均多个K近邻点肯定測试点的值。该算法的功能有:
一、从目标区域抽样计算欧式或马氏距离;
二、在交叉验证后的RMSE基础上选择启示式最优的K邻域;
三、计算多元k-近期邻居的距离倒数加权平均。

 

9、数据挖掘十大经典算法(9) Naive Baye

 

简单介绍
贝叶斯分类的基础是几率推理。就是在各类条件的存在不肯定。仅知其出现几率的状况下,怎样完毕推理和决策任务。几率推理是与肯定性推理相相应的。

而朴素贝叶斯分类器是基于独立若是的,即若是样本每个特征与其它特征都不相关。举个样例,若是一种水果其具备红。圆,直径大概4英寸等特征。该水果可以被断定为是苹果。

虽然这些特征相互依赖或者有些特征由其它特征决定。然而朴素贝叶斯分类器以为这些属性在断定该水果是否为苹果的几率分布上独立的。朴素贝叶斯分类器依靠精确的天然几率模型,在有监督学习的样本集中能获取得很好的分类效果。在不少实际应用中。朴素贝叶斯模型參数预计使用最大似然预计方法。换而言之朴素贝叶斯模型能工做并没实用到贝叶斯几率或者不论什么贝叶斯模型。

虽然是带着这些朴素思想和过于简单化的若是,但朴素贝叶斯分类器在很是多复杂的现实情形中仍能够取得至关好的效果。2004年。一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去难以想象的分类效果的若干理论上的缘由。

虽然如此,2006年有一篇文章具体比較了各类分类方法,发现更新的方法(如boosted trees和随机森林)的性能超过了贝叶斯分类器。

朴素贝叶斯分类器的一个优点在于仅仅需要依据少许的训练数据预计出必要的參数(变量的均值和方差)。由于变量独立若是,仅仅需要预计各个变量的方法。而不需要肯定整个协方差矩阵。

两种分类模型:

分类是将一个未知样本分到几个预先已知类的过程。

数据分类问题的解决是一个两步过程:

第一步,创建一个模型,描写叙述预先的数据集或概念集。经过分析由属性描写叙述的样本(或实例,对象等)来构造模型。

假定每一个样本都有一个预先定义的类,由一个被称为类标签的属性
肯定。为创建模型而被分析的数据元组造成训练数据集。该步也称做有指导的学习。 在众多的分类模型中,应用最为普遍的两种分类模型是:

决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive  Bayesian  Model,NBC)。

决策树模型经过构造树来解决分类问题。

一、首先利用训练数据集来构造一棵决策树,一旦树创建起来,它就可为未知样本产生一个分类。在分类问题中使用决策树模型有很是多的长处。决策树便于使用。而且高效。依据决策树可以
很是easy地构造出规则,而规则一般易于解释和理解;决策树可很是好地扩展到大型数据库中,同一时候它的大小独立于数据库的大小;决策树模型的另一大长处就是可以对有不少属性的数据集构造决策树。

决策树模型也有一些缺点,比方处理缺失数据时的困难,过分拟合问题的出现。以及忽略数据集中属性之间的相关性等。

 
二、和决策树模型相比,朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同一时候。NBC模型所需预计的參数很是少。对缺失数据不太敏感,算法也比較简单。
理论上,NBC模型与其它分类方法相比具备最小的偏差率。

 

但是实际上并非老是如此。这是因为NBC模型若是属性之间相互独立,这个若是在实际应用中每每是不成立的。这给NBC
模型的正确分类带来了必定影响。在属性个数比較多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。 

贝叶斯分类器特色
一、 需要知道先验几率
先验几率是计算后验几率的基础。在传统的几率理论中。先验几率可以由大量的反复实验所得到的各种样本出现的频率来近似得到。其基础是“大数定律”。这一思想称为“频率主义”。而在称为“贝叶斯主义”的数理统计学派中,他们以为时间是单向的,不少事件的发生不具备可反复性,所以先验几率仅仅能依据对置信度的主观断定来给出,也可以说由“信仰”来肯定。


二、依照得到的信息对先验几率进行修正
在没有得到不论什么信息的时候,假设要进行分类判别,仅仅能根据各种存在的先验几率。将样本划分到先验几率大的一类中。而在得到了不少其它关于样本特征的信息后。可以按照贝叶斯公式对先验几率进行修正,获得后验几率。提升分类决策的准确性和置信度。
三、分类决策存在错误率
由于贝叶斯分类是在样本取得某特征值时对它属于各种的几率进行猜測,并没有法得到样本真实的类别归属状况,因此分类决策必定存在错误率,即便错误率很是低。分类错误的状况也可能发生。

 

10、数据挖掘十大经典算法(10) CART 

分类回归树(CART,Classification And Regression Tree)也属于一种决策树。分类回归树是一棵二叉树,且每个非叶子节点都有两个孩子,因此对于第一棵子树其叶子节点数比非叶子节点数多1。

 

决策树生长的核心是肯定决策树的分枝准则。
一、 怎样从众多的属性变量中选择一个当前的最佳分支变量。
也就是选择能使异质性降低最快的变量。
异质性的度量:GINI、TWOING、least squared deviation。
前两种主要针对分类型变量,LSD针对连续性变量。
代理划分、加权划分、先验几率
二、 怎样从分支变量的众多取值中找到一个当前的最佳切割点(切割阈值)。
(1) 切割阈值:
 A、数值型变量——对记录的值从小到大排序,计算每个值做为临界点产生的子节点的异质性统计量。

能够使异质性减少程度最大的临界值即是最佳的划分点。
 B、分类型变量——列出划分为两个子集的所有可能组合。计算每种组合下生成子节点的异质性。相同。找到使异质性减少程度最大的组合做为最佳划分点。


  

在决策树的每一个节点上咱们可以按任一个属性的任一个值进行划分。按哪一种划分最好呢?有3个标准可以用来衡量划分的好坏:GINI指数、双化指数、有序双化指数。

终止条件:

一个节点产生左右孩子后,递归地对左右孩子进行划分就能够产生分类回归树。这里的终止条件是什么?何时节点就可以中止分裂了?

知足下面一个即中止生长。
(1) 节点达到全然纯性;
(2) 数树的深度达到用户指定的深度。
(3) 节点中样本的个数少于用户指定的个数;
(4) 异质性指标降低的最大幅度小于用户指定的幅度。

剪枝

当分类回归树划分得太细时,会对噪声数据产生过拟合做用。所以咱们要经过剪枝来解决。

剪枝又分为前剪枝和后剪枝:前剪枝是指在构造树的过程当中就知道哪些节点可以剪掉。因而干脆不正确这些节点进行分裂。在N皇后问题和背包问题中用的都是前剪枝。上面的χ2方法也可以以为是一种前剪枝;后剪枝是指构造出完整的决策树以后再来考查哪些子树可以剪掉。

在分类回归树中可以使用的后剪枝方法有多种,比方:代价复杂性剪枝、最小偏差剪枝、悲观偏差剪枝等等。这里咱们仅仅介绍代价复杂性剪枝法。

预測回归树——预測值为叶节点目标变量的加权均值分类树——某叶节点预測的分类值应是形成错判损失最小的分类值。

相关文章
相关标签/搜索