决策树(DecisionTree)理解及参数介绍
1.算法过程
决策树的⽣成是⼀个递归过程。
1.1递归返回
代替英文
叶节点⽣成过程
1. 当前节点样本全属于同⼀类,⽆需划分
2. 当前属性集为空或者所有样本在所有属性上取值相同,⽆法划分,并设置为所含样本最多的类别
3. 当前节点样本为空,不能划分,并设置为++⽗节点++所含样本最多类别
1.2伪代码
定义函数TreeGenerate,输⼊为样本集D和属性集A;
节点node;
if D中样本全为同⼀类别C,then node=C,return; # ⽆需划分
if A is null or D在A上取值相同,then node=D中样本最多的类;# ⽆法划分
找到最优划分属性a;
遍历(for)属性a中每⼀个值,av为其中⼀个值;
从node上⽣成新分⽀node1,Dv表⽰样本D在属性a上取值为av的⼦集;
if Dv is null, then node1设置为叶节点,标记为D中样本最多的类,return;# 不能划分
el 执⾏函数TreeGenerate,输⼊为Dv和去掉a后的A* # 递归过程
遍历(for)结束
1.3划分选择
邮件英语
所含样本尽可能属于同⼀类别,节点++纯度++越来越⾼。
信息熵、信息增益、增益率、基尼指数的公式均需牢记并理解。
1.3.1信息熵
度量样本集合纯度最常⽤的⼀种指标。越⼩,纯度越⾼。最⼩值为0,即全属于同⼀类。
1.3.2信息增益
1.3.3增益率
增益率对取值数⽬较少的属性有所偏好。
配钥匙C4.5不直接选择增益率最⼤属性。++先++找出信息增益⾼于平均⽔平的属性,++再++从中选择增益率最⾼的。
这样就避免选择了增益率⾼,但增益反⽽低的属性。
1.3.4基尼指数
反映从数据集随机抽取两个样本,类别标记不⼀致的概率。
选择划分后基尼指数最⼩的属性。
2.参数介绍
2.1 tree.DecisionTreeClassfier
1. criterion:衡量划分质量的⽅法。‘gini’(默认)基尼指数,'entropy’信息增益
2. splitter:节点划分策略。‘best’(默认)最优划分,'random’随机局部最优划分。"best"在特征的所有划分点中找出最优的划分
点,"random"随机的在部分划分点中找局部最优的划分点。“best"适合样本量不⼤的时候,⽽如果样本数据量⾮常⼤,推
荐"random”。
对症下药的近义词3. max_depth:++如果max_leaf_nodes参数指定,则忽略++。默认None,nodes are expanded until all leaves are pure or
until all leaves contain less than min_samples_split samples.
4. min_samples_split:++内部节点++再划分所需最⼩样本数。default=2,If float, is a percentage and ceil(min_samples_split *
n_samples) are the minimum number of samples for each split.向上取整
5. min_samples_leaf:++叶⼦节点++最少样本数。++如果某叶⼦节点数⽬⼩于样本数,则会和兄弟节点⼀起被剪枝。++
6. min_weight_fraction_leaf:叶⼦节点最⼩的样本权重和。float,默认为0。如果⼩于这个值,则会和兄弟节点⼀起被剪枝。默认不考
虑权重问题,所有样本的权重相同。⼀般来说如果我们有较多样本有缺失值或者分类树样本的分布类别偏差很⼤,就会引⼊样本权重。
集客家经纪人登录++不与min_samples_leaf同时设置。++
7. max_features:划分时考虑的最⼤特征数。default=None,即考虑所有特征。int,float… 特征数很多时使⽤,减少树的⽣成时间。
8. max_leaf_nodes:int,None(default).最⼤叶⼦节点数。++不与max_depth同时设置++。如果设置,算法会建⽴在
方方圆圆
max_leaf_nodes内最优的决策树。如果特征不多,可以不考虑这个值。可以防⽌过拟合。
9. min_impurity_decrea:节点划分最⼩不纯度。float,默认值为0。限制决策树的增长,如果某节点的不纯度(基尼系数,信息增
益,均⽅差,绝对差)⼩与这个阈值,则该节点不再⽣成⼦节点。
10. min_impurity_split:和上⼀个参数类似,不再使⽤。
11. class_weight:类别权重。默认为None,(dict, list of dicts, balanced)为了防⽌训练集某些类别的样本过多,导致训练的决策树过
于偏向这些类别。balanced,算法⾃⼰计算权重,样本量少的类别权重会更⾼。如果样本类别分布没有明显的偏倚,则可以不管这个参数。不适⽤于回归树。不偏不倚什么意思
2.2 tree.DecisionTreeRegressor
1. criterion:衡量划分质量的⽅法。‘m’(default)均⽅误差;'friedman_m’均⽅误差近似,最⼩化L2 loss;'mae’平均绝对
误差,最⼩化L1 loss。
2. splitter、max_depth、min_samples_split、min_samples_leaf、min_weight_fraction_leaf、max_features、
max_leaf_nodes、min_impurity_decrea:同分类树。
天蝎座女生的性格2.3 tree.ExtraTreeClassifier & tree.ExtraTreeRegressor
Extremely randomized trees 极端随机树
与传统树的区别
随机选择max_features个特征,最佳随机划分。
Warning: ++Extra-trees should only be ud within enmble methods++ enmble.ExtraTreeClassifier/enmble.ExtraTreeRegressor
参数
1. splitter:默认’random’ VS 传统树’best’
2. max_features:默认’auto’ VS 传统树None