DecisionTree决策树参数详解

75 篇文章 2 订阅
66 篇文章 5 订阅
1.max_depth:
指定遍历搜索的最大深度。
int or None, optional (default=None) 一般来说,数据少或者特征少的时候可以不管这个值。
如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。
常用的可以取值10-100之间。常用来解决过拟合

2.min_sample_leaf:
叶子节点最少样本数。
这个值限制叶子节点最少的样本数,若叶子节点数小于样本数,则会和兄弟节点一起被剪枝,
样本量不大时,可不管这个值

3.max_leaf_nodes:
最大叶子节点数。
int or None, optional (default=None) 通过限制最大叶子节点数,可以防止过拟合,默认是
”None”,即不限制最大的叶子节点数。
如果加了限制,算法会建立在最大叶子节点数内最优的决策树。如果特征不多,可以不考虑
这个值,但是如果特征分成多的话,可以加以限制,具体的值可以通过交叉验证得到

4.min_sample_split:
内部节点再划分所需最小样本数。
int, float, optional (default=2) 如果是 int,则取传入值本身作为最小样本数; 
如果是 float,则去 ceil(min_samples_split * 样本数量) 的值作为最小样本数,即向上取整

5.min_impurity_decrease:
节点划分最小不纯度。
float, optional (default=0) 这个值限制了决策树的增长,
如果某节点的不纯度(基尼系数,信息增益,均方差,绝对差)小于这个阈值,则该节点
不再生成子节点。 sklearn 0.19.1版本之前叫min_impurity_split

6.min_impurity_split:
信息增益的阀值。
决策树在创建分支时,信息增益必须大于这个阀值,否则不分裂

7.min_weight_fraction_leaf:
叶子节点最小的样本权重和。
float, optional (default=0.) 这个值限制了叶子节点所有样本权重和的最小值,
如果小于这个值,则会和兄弟节点一起被剪枝。 默认是0,就是不考虑权重问题。
一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,
就会引入样本权重,这时我们就要注意这个值
了。

8.random_state:
无论决策树模型如何进化,在分枝上的本质都是追求某个不纯度指标的优化,不纯度
是基于节点来计算的。也就是说,决策树在建树时,是靠优化节点来追求一棵优化的树,
但最优的节点能够保证最优的树吗?不一定。
那应该怎么解决这个问题呢?
sklearn解决这个问题的方法: 既然可以树不能保证最优,那就建更多的不同的树,然后从中
取最好的。
怎样从一组数据集中建不同的树呢:scikit-learn在每次分枝时, 不使用全部特征, 而是随机
选取一部分特征,从中选取不纯度相关指标最优的作为分枝用的节点. 这样,每次生成的树
也就不同了。这里对于特征的随机选取,就是random_state的意思。其实就可以理解为
随机数种子,这个种子类似于一个控制器,控制每次的随机。因为要随机采样,设置了
这个参数以后,每次随机的结果是一样的,这样很有用,控制住了不必要的变量。

9.splitter:
特征划分标准。
‘best’ or ‘random’ (default=”best”) 前者在特征的所有划分点中找出最优的划分点。
后者是随机的在部分划分点中找局部最优的划分点。默认的”best”适合样本量不大的时候,
而如果样本数据量非常大,此时决策树构建推荐”random” 

10.Criterion:
特征选择标准。
‘gini’ or ‘entropy’ (default=”gini”),前者是基尼系数,后者是信息熵。
两种算法差异不大对准确率无影响,信息墒运行效率低一点,因为它有对数运算。
一般说使用默认的基尼系数”gini”就可以了,即CART算法。
除非你更喜欢类似ID3, C4.5的最优特征选择方法
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
决策树(Decision Tree)是一种常见的分类和回归算法。在构建决策树时,需要选择一个划分标准(即 criterion),用于从当前节点中选择最佳特征进行划分。常见的划分标准有以下两种: 1. 基尼系数(Gini Impurity):基尼系数是指在样本集合中随机抽取两个样本,其类别不一致的概率。具体地,对于样本集合 $D$,它的基尼系数定义为: $$Gini(D) = \sum_{k=1}^{|\mathcal{Y}|} \sum_{k' \neq k} p_k p_{k'} = 1 - \sum_{k=1}^{|\mathcal{Y}|} p_k^2$$ 其中,$|\mathcal{Y}|$ 是类别数目,$p_k$ 是第 $k$ 类样本所占比例。 对于决策树的某个节点 $t$ 和特征 $A$,假设将样本集合 $D$ 划分为 $D_1$ 和 $D_2$ 两部分,其中 $D_1$ 中的样本满足 $A$ 的取值为 $a$,$D_2$ 中的样本满足 $A$ 的取值不为 $a$。则使用基尼系数作为划分标准的信息增益(IG)为: $$IG(D,A) = Gini(D) - \sum_{a \in \mathcal{A}} \frac{|D_1|}{|D|} Gini(D_1) - \frac{|D_2|}{|D|} Gini(D_2)$$ 其中,$\mathcal{A}$ 是特征 $A$ 可能取值的集合。 2. 信息增益(Information Gain):信息增益是指使用某个特征对数据进行划分后,信息熵减少的程度。具体地,在样本集合 $D$ 中,类别 $k$ 的样本所占比例为 $p_k$,则其信息熵定义为: $$Ent(D) = -\sum_{k=1}^{|\mathcal{Y}|} p_k \log_2 p_k$$ 对于决策树的某个节点 $t$ 和特征 $A$,假设将样本集合 $D$ 划分为 $D_1$ 和 $D_2$ 两部分,其中 $D_1$ 中的样本满足 $A$ 的取值为 $a$,$D_2$ 中的样本满足 $A$ 的取值不为 $a$。则使用信息增益作为划分标准的信息增益为: $$IG(D,A) = Ent(D) - \sum_{a \in \mathcal{A}} \frac{|D_1|}{|D|} Ent(D_1) - \frac{|D_2|}{|D|} Ent(D_2)$$ 基于以上两种划分标准,决策树的构建过程就是递归地选择最优特征进行划分的过程。最终得到的决策树可以用于分类和回归任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值