机器学习笔记——小白都能看懂的决策树

一、决策树初步了解

  • 决策树是一种基本的分类与回归方法,但更常用于解决分类问题。决策树顾名思义呈树形结构,这对于我们学过数据结构的同学来说不会陌生,决策树有一个根节点,若干内部节点若干叶子节点。根节点表示所有样本的全集,内部节点表示一个特征或属性,叶子节点表示一个类。每个叶子节点也就是一个类对应从根节点到叶子节点的唯一路径。
  • 决策树用于解决分类问题的基本思想是,根据训练样本数据集产生我们想要的决策树,然后再用该决策树去处理测试数据集。所以说得到的决策树结构也就对应我们的模型选择。决策树学习通常包含三个步骤:特征选择决策树的生成决策树的剪枝
  • 针对某一训练数据集,我们得到的决策树可能有多个也可能一个也没有。不同的决策树之间也需要用损失函数这一指标去衡量优劣,决策树学习的损失函数通常是正则化的极大似然函数。损失函数确定之后,决策树的构建过程其实就是决策特征属性的选择过程,而从所有可能的决策树中选择最优决策树是个NPC问题,我们要用启发式方法去逼近这个最优选择。
  • 递归选择最优特征之后得到的决策树可能对训练数据集有很好的分类能力,但对未知的测试数据却未必有很好的分类能力,也就是说决策树模型往往过拟合。换句话说我们得到的决策树划分粒度太细了太贴合于训练数据集,我们需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使他具有更好的泛化能力。
  • 决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择,决策树的生成只考虑局部最优,决策树的剪枝则考虑全局最优。

二、特征选择

2.1 熵与条件熵

  • 在信息论与概率统计中,(entropy)是表示随机变量不确定性的度量。假设X可以取有限个离散随机变量。
    P ( X = x i ) = p i , i = 1 , 2 , . . . , n P(X=x_i)=p_i,i=1,2,...,n P(X=xi)=pi,i=1,2,...,n,则随机变量X的熵可以定义为: H ( X ) = H ( p ) = − ∑ i = 1 n p i l o g p i H(X)=H(p)=-\sum_{i=1}^n {p_ilogp_i} H(X)=H(p)=i=1npilogpi
  • 我们定义若 p i = 0 p_i=0 pi=0则0log0=0。通常当我们把log的底数取为2此时熵的单位称作比特bit(奇奇怪怪的联系?)。熵只依赖于X的分布,而与X的取值无关,因此某随机变量的熵也就是其分布的熵 H ( X ) = H ( p ) H(X)=H(p) H(X)=H(p)。熵越大随机变量取值的不确定性就越大。
  • 接下来我们引入条件熵的概念。随机变量X给定的条件下随机变量Y的条件熵 H ( Y ∣ X ) H(Y|X) H(YX),定义为X给定条件下Y的条件概率分布的熵对X的数学期望。 H ( Y ∣ X ) = ∑ i = 1 n p i h ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^n {p_ih(Y|X=x_i)} H(YX)=i=1npih(YX=xi)
  • 当然这里的熵还有条件熵都是一个抽象的概念,也就是说某个分布的真实熵以及条件熵我们是无法获得的。但如果我们通过统计现有数据样本得到的熵与条件熵我们称作经验熵经验条件熵

2.2 信息增益

  • 我们首先给出信息增益的定义: g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
  • 对该公式做出解释:D是指某训练数据集,A是指某特征。经验熵 H ( D ) H(D) H(D)表示对数据集D进行分类的不确定性。而经验条件熵 H ( D ∣ A ) H(D|A) H(DA)表示在特征A取值确定的情况下对数据集D进行分类的不确定性。因此信息增益反应在公式上是一个差值的形式,所代表的含义是通过确定特征A的取值,对数据集D分类的不确定性下降的程度,也就是信息量的增益程度。显然对于数据集D来说信息增益大的A特征具有更强的分类能力。
  • 下面展示信息增益计算算法:
    1.我们首先做出如下定义:训练数据集为 D D D, ∣ D ∣ |D| D表示样本容量。设训练集可以分为 K K K个类 C k C_k Ck ∣ C k ∣ |C_k| Ck表示类 C k C_k Ck的样本个数。特征 A A A有n个不同的取值 { a 1 , a 2 , . . . , a n } \{a_1,a_2,...,a_n\} { a1,a2,...,an},根据A特征的取值可以将 D D D划分为n个子集 D 1 , D 2 , . . . , D n D_1,D_2,...,D_n D1,D2,...,Dn,子集 D i D_i D
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值