机器学习——决策树算法

来源:互联网 发布:知几是什么意思 编辑:程序博客网 时间:2024/06/05 04:11

1、机器学习中分类和预测算法的评估

(1)准确率

(2)速度(算法复杂度)

(3)强壮性(数据有噪音或关键值确实情况下的表现)

(4)可规模性

(5)可解释性

2、决策树(decision tree)/判定树的定义

决策树是一个类似流程框图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布

树的最顶层是根结点。决策树是机器学习中分类方法中一个重要的算法。


3、构造决策时的基本方法(买电脑示例)


(1)熵(entropy)的定义

信息和抽象如何度量?

1948年,香农提出来“信息熵”的概念。

一条信息的信息量和它的不确定性有直接关系,要弄清楚一件非常非常不确定的事情或者是我们一无所知的事情,需要了解大量信息;

即:信息量的多少就等于不确定性的多少(越不确定一件事需要的信息量越大)。

举例:猜世界杯冠军,每个队夺冠的几率是不一样的,假如一无所知,需要猜多少次?将1--32个球队进行编号,p1表示第一支球队夺冠的几率,后边依此类推。

比特(bit)来衡量信息的多少:

计算信息熵的公式:

总结:变量的不确定性越大,熵就越大


(2)决策树归纳算法

1970--1980,J.Ross.Quinlan提出ID3算法。

选择属性判断结点:

信息获取量(Information Gain):Gain(A) = Info(D) - Info_A(D)——通过A来作为节点分类获取了多少信息量。

上面买电脑的示例中,在没有任何属性分类,本身数据集目标属性的信息熵为:

在以年龄age作为分类情况下的信息熵为:

以年龄age分类的信息获取量为:

类似的,以其他属性作为分类时的信息获取量分别为:

由于年龄age的信息获取量最大,所以选择age作为第一个根结点,即:

再重复上面信息获取量的计算,继续选择下一个结点,直到只有一种目标类出现或满足停止的条件,这就是选择某个属性作为当前的结点以不断增长决策树。

(3)决策树算法ID3总结

——树以代表训练样本的单个结点开始。

——如果样本都在同一个类,则该结点成为树叶,并用该类标号;否则,算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好的将样本分类的属性,

该属性成为该结点的“测试”或“判定”属性。

——在算法的该版本中,所有的属性都是分类的,即:离散值,连续属性必须离散化。

——对测试属性的每个已知的值,创建一个分支,并据此划分样本。

——算法使用同样的过程,递进地形成每个划分上的样本决策树,一旦一个属性出现在一个节点上,就不以该结点的在任何后代上考虑它。

——递归划分步骤仅当下列之一成立停止:

a、给定结点的所有样本属于同一类。

b、没有剩余属性可以用来进一步划分样本,在此情况下采用多数表决,这涉及将给定的结点转换成树叶,并用样本中多数所在的类标记它

c、分支:test_attribute=a,没有样本,在这种情况下,以samples中的多数类创建一个树叶。

(4)其他算法

C4.5:Quinlin

Classification and RegressionTrees(CART)

共同点:都是贪心算法,自上而下(top_down approach)

区别:属性选择度量方式不同。ID3(Gain information)、C4.5(Gain ratio)、CART(gini index)

(5)如何处理连续性变量的属性?——离散化

(6)树剪枝叶:先剪枝、后剪枝(避免overfitting:过度拟合)

overfitting现象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据以外的数据集上却不能很好的拟合数据

出现这种现象的主要原因是:训练数据中存在噪音或训练数据太少。解决overfitting的方法主要有两种:提前停止树的增长或对已经生成的树按照一定的规则进行后剪枝

通俗讲,过拟合是指把学习进行的太彻底,把样本数据所有的特征几乎都习得了,于是机器学到了过多的局部特征,过多的由于噪声带来的假特征,造成模型的“泛化性”

和识别准确率几乎达到谷点,于是你用机器识别新的样本时会发现几乎没几个是正确的。

(7)决策树算法的优缺点:

优点:直观、便于理解、小规模数据集有效

缺点:处理连续变量不好、类别较多时,错误增加的比较快、可规模性一般(对于大规模数据集算法复杂度高,对每个属性都要计算信息获取量)。

原创粉丝点击