您的位置:首页 > 其它

c 4.5 k-means 算法 机器学习

2016-06-13 10:11 232 查看
1、C4.5

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

从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。

决策树学习也是数据挖掘中一个普通的方法。在这里,每个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。 当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。另外,随机森林分类器将许多决策树结合起来以提升分类的正确率。

决策树同时也可以依靠计算条件概率来构造。决策树如果依靠数学的计算方法可以取得更加理想的效果。

决策树是如何工作的

决策树一般都是自上而下的来生成的。

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

从根到叶子节点都有一条路径,这条路径就是一条“规则”。

决策树可以是二叉的,也可以是多叉的。

对每个节点的衡量:

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算法. 

  分类决策树算法是从大量事例中进行提取分类规则的自上而下的决策树. 

      决策树的各部分是: 

            根:   学习的事例集. 

            枝:   分类的判定条件. 

            叶:   分好的各个类. 

§4.3.2     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))最小的的特征来生成子树. 

§4.3.3:   ID3算法对数据的要求 

1.     所有属性必须为离散量. 

2.     所有的训练例的所有属性必须有一个明确的值. 

3.     相同的因素必须得到相同的结论且训练例必须唯一. 

§4.3.4:   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、The k-means algorithm

   k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。

  假设有k个群组Si, i=1,2,...,k。μi是群组Si内所有元素xj的重心,或叫中心点。

  k平均聚类发明于1956年, 该算法最常见的形式是采用被称为劳埃德算法(Lloyd algorithm)的迭代式改进探索法。劳埃德算法首先把输入点分成k个初始化分组,可以是随机的或者使用一些启发式数据。然后计算每组的中心点,根据中心点的位置把对象分到离它最近的中心,重新确定分组。继续重复不断地计算中心并重新分组,直到收敛,即对象不再改变分组(中心点位置不再改变)。

  劳埃德算法和k平均通常是紧密联系的,但是在实际应用中,劳埃德算法是解决k平均问题的启发式法则,对于某些起始点和重心的组合,劳埃德算法可能实际上收敛于错误的结果。(上面函数中存在的不同的最优解)

  虽然存在变异,但是劳埃德算法仍旧保持流行,因为它在实际中收敛非常快。实际上,观察发现迭代次数远远少于点的数量。然而最近,David Arthur和Sergei Vassilvitskii提出存在特定的点集使得k平均算法花费超多项式时间达到收敛。

  近似的k平均算法已经被设计用于原始数据子集的计算。

  从算法的表现上来说,它并不保证一定得到全局最优解,最终解的质量很大程度上取决于初始化的分组。由于该算法的速度很快,因此常用的一种方法是多次运行k平均算法,选择最优解。

  k平均算法的一个缺点是,分组的数目k是一个输入参数,不合适的k可能返回较差的结果。另外,算法还假设均方误差是计算群组分散度的最佳参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: