机器学习(四):决策树

本文详细介绍了决策树的学习与应用,包括熵、信息增益、ID3、C4.5算法以及CART算法。决策树是一种用于分类的模型,其构造过程涉及特征选择、树的生成和剪枝。通过对训练数据的分析,利用信息增益或信息增益比选择最佳特征,生成决策树。CART算法则结合了分类和回归,采用基尼指数或最小二乘法进行节点划分。
摘要由CSDN通过智能技术生成

更多内容关注公众号:数学的旋律
在这里插入图片描述


tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物

引言

    决策树是一种基本的分类与回归方法,本文主要讨论用于分类的决策树。
    决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。
    决策树学习通常包括三个步骤:特征选择、决策树的生成和决策树的修剪。
    这些决策树学习的思想主要来源于由Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及由Breiman>等人在1984年提出的CART算法。

一、数学预备知识

1.熵(entropy)与经验熵(empirical entropy)

熵是表示随机变量不确定性的度量,熵越大,随机变量的不确定性就越大。
设X是一个取有限个值的离散随机变量,其概率分布为
P ( X = x i ) = p i ,            i = 1 , 2 , ⋯   , n P(X=x_i)=p_i,\ \ \ \ \ \ \ \ \ \ i=1,2,\cdots ,n P(X=xi)=pi,          i=1,2,,n则随机变量X的熵定义为
H ( X ) = − ∑ i = 1 n p i l o g   p i H(X)=-\sum_{i=1}^np_ilog\ p_i H(X)=i=1npilog pi当熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵称为经验熵。

2.条件熵(conditional entropy)与经验条件熵(empirical conditional entropy)

条件熵表示在已知随机变量X的条件下随机变量Y的不确定性。
设有随机变量(X,Y),其联合概率分布为
P ( X = x i , Y = y j ) = p i j ,            i = 1 , 2 , ⋯   , n ; j = 1 , 2 , ⋯   , m P(X=x_i, Y=y_j)=p_{ij},\ \ \ \ \ \ \ \ \ \ i=1,2,\cdots ,n;j=1,2,\cdots ,m P(X=xi,Y=yj)=pij,          i=1,2,,n;j=1,2,,m则随机变量X给定的条件下随机变量Y的条件熵,定义为,X给定条件下Y的条件概率分布的熵对X的数学期望
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)这里,pi=P(X=xi),i=1,2,…,n。
当条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵称为经验条件熵。

3.信息增益(information gain)

特征A对训练集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)= H(D)- H(D|A) g(D,A)=H(D)H(DA)

4.信息增益比

特征A对训练集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练集D关于特征A的值的熵HA(D)之比,即
g R ( D , A ) = g ( D , A ) H A ( D )                              ( 1 ) g_R(D,A)={ {g(D,A)}\over{H_A(D)}}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) gR(D,A)=HA(D)g(D,A)                            (1)其中,
H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2   ∣ D i ∣ ∣ D ∣ H_A(D)=-\sum_{i=1}^n{ {|D_i|}\over{|D|}}log_2\ { {|D_i|}\over{|D|}} HA(D)=i=1nDDilog2 DDin是特征A取值的个数。

5.基尼指数

分类问题中,假设有K个类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为
G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^K{p_k}^2 Gini(p)=k=1Kpk(1pk)=1k=1Kpk2


二、决策树模型与学习

1.分类决策树模型

    分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
    用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。
    图1是一个决策树的示意图,图中圆和方框分别表示内部结点和叶结点。
决策树示意图

图1
2.决策树学习

假设给定训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … ( x N , y N ) D={(x_1,y_1), (x_2,y_2),…(x_N,y_N)} D=(x1,y1),(x2,y2),(xN,yN)其中, x i = ( x i ( 1 ) , x i ( 2 ) , ⋯   , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T xi=(xi(1),xi(2),,xi(n))T为输入实例(特征向量),n为特征个数, y i ∈ 1 , 2 , ⋯   , K y_i∈{1,2,\cdots,K} yi1,2,,K为标记类别, i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N N N N为样本容量。学习的目标是根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类(如图2)。
分类决策树模型

图2
    决策树学习本质上是从训练集中归纳出一组分类规则,与训练集不相矛盾的决策树(即能对训练数据进行正确分类的决策树)可能有多个,也可能一个也没有。我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。     决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行划分。通过该方法生成的决策树可能对训练数据有很好的分类能力,但对未知的测试数据却未必有很好的分类能力,即可能发生过拟合现象。我们需要对已生成的树自下而上进行剪枝,将树变得简单,从而使它具有更好的泛化能力。以上就是决策树学习的三个步骤:特征选择、决策树的生成、决策树的修剪。     如果特征数量很多,也可以在决策树学习开始的时候,对特征进行选择,只留下对训练数据有足够分类能力的特征。

三、特征选择

    特征选择在于选取对训练数据具有分类能力的特征。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的,经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的准则是信息增益或信息增益比。

1.信息增益

    信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。在选择最优特征时,可比较各特征的信息增益值,从中选择信息增益值最大的作为最优特征。
    设训练集为D,|D|表示其样本个数。设有K个类Ck,k=1,2,…,K,|Ck|为属于类Ck的样本个数, ∑ k = 1 k ∣ C k ∣ = ∣ D ∣ \sum_{k=1}^k|C_k|=|D| k=1kCk=D。设特征A有n个不同取值{a1,a2,…,an},根据特征A的取值将D划分为n个子集D1,D2,…,Dn,|Di|为Di的样本个数, ∑ i = 1 n ∣ D i ∣ = ∣ D ∣ \sum_{i=1}^n|D_i|=|D| i=1nDi=D。记子集Di中属于类Ck的样本的集合为Dik,即Dik=Di∩Ck,|Dik|为Dik的样本个数。于是信息增益的算法如下:
算法1(信息增益的算法)
输入:训练数据集D和特征A
输出:特征A对训练数据集D的信息增益g(D,A)
① 计算数据集D的经验熵H(D)
H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2   ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^K{ {|C_k|}\over{|D|}}log_2\ { {|C_k|}\over{|D|}} H(D)=k=1KDCklog

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值