首页 > 其他分享 >决策树Decision Tree

决策树Decision Tree

时间:2022-11-02 09:26:15浏览次数:57  
标签:剪枝 结点 特征 Decision Tree 增益 基尼系数 决策树

1. 决策树

概念:是一种非参数的有监督学习方法,他能从一系列有特征和标签的数据中总结出决策规则,并用树状图来呈现这些规则,以解决分类和回归问题。

思想:决策树基于特征对数据实例按照条件不断进行划分,最终达到分类或者回归的目的。

决策树可以看作为是一组if-then规则的合集,为决策树的根节点到叶子节点的每一条路径都构建一条规则,路径中的内部结点特征代表规则条件,而叶子节点表示这条规则的结论

核心概念:特征选择方法、决策树构造过程和决策树剪枝

本质:图结构

关键概念:结点

根结点:没有进边,有出边。包含最初的,针对特征的提问。

中间结点:既有进边又有出边,进边只有一条,出边条数不固定。都是针对特征的提问。

叶子结点:有进边,没有出边,没一个叶子结点都是一个类别的标签

子结点和父结点:在两个相连的结点中,更接近根结点的是父结点,另一个是子结点

决策树算法的核心解决两个问题:

  • 如何从数据表中找出最佳节点和最佳分支? -- 特征选择方法

  • 如何让决策树停止生长防止过拟合? -- 剪枝

1.1 特征选择

常见的特征选择方法:信息增益、信息增益比和基尼系数,分别对应三种常见的决策树算法为ID3、C4.5和CART。

  • 信息增益

熵:一种描述随机变量不确定性的度量方式,也可以用来描述样本集合的纯度,信息熵越低,样本不确定性越小,相应的纯度越高。

纯度:如果一个特征能够使得分类后的分支结点尽可能属于同一类别,即该结点有着较高的纯度。

信息增益:由得到的特征X而使得类Y的信息不确定性的减少程度,即它是一种描述目标类别确定性增加的量,特征信息增益越大,目标类的确定性越大。

信息增益定义为:经验熵E(D)与经验条件熵E(D|A)之差 -- g(D|A)=E(D)-E(D|Q)

存在问题:当某个特征分类取值较多时,该特征的信息增益计算结果就会比较大,因此选择特征会偏向于取值较大的特征

  • 信息增益比

信息增益比定义:特征A对数据集D的信息增益比定义为g(D, A)与数据集D关于特征A取值的熵E_A(D)的比值:g_R(D, A) = \frac {G(D, A)} {E_A(D)}

  • 基尼系数

基尼系数是针对概率分布而言。假设有K个样本,样本属于第k类的概率为p_k,则该样本类别概率分布的基尼指数可定义为:

Gini(p)=\sum_{k=1}^{K} {p_k(1-p_k)}=1-\sum_{k=1}^{K} p_k^2

1.2 决策树模型

  • ID3(Iterative Dichotomiser 3)-- 3代迭代二叉树

核心:基于信息增益递归的选择最优特征构造决策树

具体方法

首先预设一个决策树根节点,然后对所有特征计算信息增益,选择一个信息增益最大的特征作为最优特征,根据该特征的不同取值建立子结点,接着对每个子结点递归地调用上述方法,直到信息增益很小或者没有特征可选时,即可构建最终的ID3决策树。

  • C4.5(与ID3的差异只在于特征选择方法)

核心:基于信息增益比作为特征选择方法,CART生成的决策树偶都是二叉决策树,可递归的二分每个特征

  • CART(classification and regression tree)-- 分类与回归树

与上述二者区别:(1) 既可用于分类,又可用于回归 (2) 基于基尼系数选择特征 (3) 不仅包含决策树的生成算法,还包括决策树剪枝算法

定义:在给定随机变量X的条件下输出随机变量Y的条件概率分布的学习算法。

  • 决策树剪枝

决策树存在的问题:决策树生成算法递归的产生决策树,生成的决策树大而全,很容易导致过拟合现象

思想:对已生成的决策树进行简化,用过对已生成的决策树剪掉一些子树或者叶子结点,并将其根节点或父节点作为新的叶子结点

两种方法:预剪枝和后剪枝

预剪枝:在决策树生成过程中提前停止树的增长。

预剪枝思路:在决策树结点分裂之前,计算当前结点划分能否提升模型泛化能力,如果不能,则决策树提前停止生长。

预剪枝优点:直接、简单、高效,适用于大规模求解问题

预剪枝缺点:提前停止树生长的方法,在一定程度上存在欠拟合风险,导致决策树生长不够完全

后剪枝(CART使用后剪枝):主要是通过极小化决策树整体损失函数来实现。在复杂度α确定的情况下,选择损失函数最小的决策树模型。

2. DecisionTreeClassifier

2.1重要参数

2.1.1 criterion

决策树找出最佳节点和最佳分支:使用 ”不纯度“ 来衡量

不纯度越低,决策树对训练集拟合越好

不纯度基于节点来计算,树中的每个节点都有一个不纯度,并且子节点的不纯度一定低于父节点的不纯度,在同一棵树上,叶子节点的不纯度一定是最低的

criterion参数:用来决定不纯度的计算方法

  • 输入”entropy“,使用信息熵(entropy)

  • 输入”gini”,使用基尼系数(Gini Impurity)

如何选取信息熵和基尼系数?

  • 通常用基尼系数;

  • 数据维度很大,噪音很大使用基尼系数

  • 维度低、噪音低,信息熵和基尼系数没什么区别

  • 当决策树拟合程度不够时,使用信息熵

参数criterion
如何影响模型? 确定不纯度的计算方法,帮忙找出最佳节点和最佳分枝,不纯度越低,决策树的拟合越好
可能有哪些输入? 不填写默认基尼系数,填写gini使用基尼系数,填写entropy使用信息增益
怎样选取参数? 通常用基尼系数; 数据维度很大,噪音很大使用基尼系数 维度低、噪音低,信息熵和基尼系数没什么区别 当决策树拟合程度不够时,使用信息熵
2.1.2 random_state & splitter

random_state:用来设置分枝中的随机模型的参数,默认为None,在高维度时随机性会表现更明显,低维数据随机性几乎不会显现。输入任意整数,会一直长出同一棵树,让模型稳定下来。

splitter:用来控制决策树中的随机选项,有两种输入值。

输入'best',决策树在分枝时虽然随机,但还是会优先选择更重要的特征进行分支(特征重要性可以通过属性feature_importances_查看);

输入'random',决策树在分枝时会更加随机,树会更深,对训练集的拟合将会降低。这也是防止过拟合的一种方式。

2.1.3 剪枝参数

剪枝策略对决策树影响巨大,是优化决策树算法的核心。

max_depth:限制树的最大深度,超过设定深度的树枝全部剪掉,对高维度低样本量非常有效。

min_samples_leaf:限定一个结点在分枝后的每个子结点都必须包含至少min_samples_leaf个训练样本,否则分枝就不会发生,或分枝朝着满足每个子结点都包含min_samples_leaf个样本的方向去发生。一般搭配max_depth使用,在回归树中,可以让模型变得更加平滑

min_samples_split:限定一个结点必须要包含至少min_samples_split个训练样本,否则分枝不会发生

max_feature:一般与max_depth搭配,用作树的精修。限制分枝时考虑的特征数,超过限制个数的特征都会被舍弃,而可用来限制高维度数据的过拟合剪枝参数,但比较暴力,可能会导致模型学习不足。

min_impurity_decrease限制信息增益的大小,信息增益小于设定数值的分支不会发生。

2.1.4 目标权重参数

class_weight:完成样本标签平衡的参数。可对样本标签进行一定的均衡,给少量的标签更多的权重,让模型更偏向少数类,向捕获少数类的方向建模。默认为None,默认数据集中的标签具有相同的权重。

min_weight_fraction_leaf:基于权重的剪枝参数,更偏向主导类。

标签:剪枝,结点,特征,Decision,Tree,增益,基尼系数,决策树
From: https://www.cnblogs.com/5466a/p/16849884.html

相关文章

  • 梯度提升决策树GBDT
    GBDT简述梯度提升树:使用损失函数的负梯度在当前模型的值求解更为一般的提升树模型,这种基于负梯度求解提升树前向分布迭代过程叫做梯度提升树GBDT可以适用于回归问题(线......
  • 第12章 决策树
     12-1什么是决策树        ......
  • Codeforces 1670 E. Hemose on the Tree
    题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所......
  • Tree 的
    二叉树 就是计划生育政策下,每个人只能最多生两个儿子的意思。 并且分为左子树和右子树。 二叉树又有二叉查找树,也就是二叉排序树。即,左节点都比自己小,右节点都比......
  • TreeSet实现类使用
    【1】存入Integer类型数据(底层用的是内部比较器)packagecom.msb.test09;importjava.util.TreeSet;/***@author:liu*日期:16:09:57*描述:IntelliJIDEA......
  • 机器学习从入门到精通——决策树算法概述以及实现总结
    决策树​​决策树​​​​定义​​​​决策树​​​​概念​​​​熵​​​​条件熵​​​​经验熵,经验条件熵​​​​信息增益​​​​算法​​​​信息增益算法​​​​I......
  • 机器学习 之 决策树(Decision Tree)文本算法的精确率
    目录​​0、推荐​​​​1、背景​​​​2、效果图​​​​3、本次实验整体流程​​​​4、这里用词向量,而不是TF-IDF预处理后的向量​​​​5、源代码​​​​6、知识点普......
  • 决策树
    申明,本部分内容参考了众多网上资料,如有侵权请联系删除。总体介绍决策树(decisiontree)是一种基本的分类与回归方法,利用树形结构进行决策。在进行决策过程中,通常会需要进行一......
  • Tree Longest Path 2246
    2246. LongestPathWithDifferentAdjacentCharactersHardYouaregivena tree (i.e.aconnected,undirectedgraphthathasnocycles) rooted atnod......
  • 决策树实验
    #一、【实验目的】#理解决策树算法原理,掌握决策树算法框架;#理解决策树学习算法的特征选择、树的生成和树的剪枝;#能根据不同的数据类型,选择不同的决策树算法;#针对特定应......