回归决策树API

回归决策树

参数:

criterion : string,optional(default =“mse”)

衡量分裂质量的功能。支持的标准是均方误差的“mse”,它等于作为特征选择标准的方差减少,并使用每个终端节点的平均值“friedman_mse”最小化L2损失,其使用弗里德曼的潜在改进得分的均方误差分裂,并且“mae”表示平均绝对误差,其使用每个终端节点的中值来最小化L1损失。

版本0.18中的新功能:平均绝对误差(MAE)标准。

splitter : string,optional(default =“best”)

用于在每个节点处选择拆分的策略。支持的策略是“最佳”选择最佳分割和“随机”选择最佳随机分割。

max_depth : int或None,可选(默认=无)

树的最大深度。如果为None,则扩展节点直到所有叶子都是纯的或直到所有叶子包含少于min_samples_split样本。

min_samples_split : int,float,optional(default = 2)

拆分内部节点所需的最小样本数:

  • 如果是int,则考虑min_samples_split为最小数量。
  • 如果是浮点数,那么它min_samples_split是一个分数, 是每个分割的最小样本数。ceil(min_samples_split * n_samples)

更改版本0.18:添加了分数的浮点值。

min_samples_leaf : int,float,optional(default = 1)

叶节点所需的最小样本数。只有min_samples_leaf在每个左右分支中留下至少训练样本时,才会考虑任何深度的分裂点。这可能具有平滑模型的效果,尤其是在回归中。

  • 如果是int,则考虑min_samples_leaf为最小数量。
  • 如果是float,那么它min_samples_leaf是一个分数, 是每个节点的最小样本数。ceil(min_samples_leaf * n_samples)

更改版本0.18:添加了分数的浮点值。

min_weight_fraction_leaf : float,optional(默认= 0。)

需要在叶节点处的权重总和(所有输入样本的总和)的最小加权分数。当未提供sample_weight时,样本具有相同的权重。

max_features : int,float,string或None,可选(默认=无)

寻找最佳分割时要考虑的功能数量:

  • 如果是int,则考虑max_features每次拆分时的功能。
  • 如果是浮点数,那么它max_features是一个分数,并且 每次拆分时都会考虑特征。int(max_features * n_features)
  • 如果是“自动”,那么max_features=n_features
  • 如果是“sqrt”,那么max_features=sqrt(n_features)
  • 如果是“log2”,那么max_features=log2(n_features)
  • 如果没有,那么max_features=n_features

注意:在找到节点样本的至少一个有效分区之前,搜索分割不会停止,即使它需要有效地检查多个max_features功能。

random_state : int,RandomState实例或None,可选(默认=无)

如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例np.random

max_leaf_nodes : int或None,可选(默认=无)

max_leaf_nodes以最好的方式种树。最佳节点定义为杂质的相对减少。如果为None则无限数量的叶节点。

min_impurity_decrease : float,optional(默认= 0。)

如果该分裂导致杂质的减少大于或等于该值,则将分裂节点。

加权杂质减少方程式如下:

N_t  /  N  *  (杂质 -  N_t_R  /  N_t  *  right_impurity 
                    -  N_t_L  /  N_t  *  left_impurity )

N样本总数在哪里,N_t是当前节点N_t_L的样本数,左子项中N_t_R的样本数,以及右子项中的样本数。

NN_tN_t_R并且N_t_L都指的是加权和,如果sample_weight获得通过。

版本0.19中的新功能。

min_impurity_split : float,(默认值= 1e-7)

树木生长早期停止的门槛。如果节点的杂质高于阈值,节点将分裂,否则它是叶子。

从版本0.19min_impurity_split开始不推荐使用已被弃用,支持 min_impurity_decrease0.19。默认值 min_impurity_split将在0.23中从1e-7变为0,并且将在0.25中删除。请min_impurity_decrease改用。

presort : bool,optional(默认值= False)

是否预先分配数据以加快拟合中最佳分割的发现。对于大型数据集上的决策树的默认设置,将其设置为true可能会降低培训过程的速度。当使用较小的数据集或受限深度时,这可以加速训练。

属性:

feature_importances_ : shape数组= [n_features]

返回要素重要性。

max_features_ : int,

max_features的推断值。

n_features_ : int

fit执行时的功能数量。

n_outputs_ : int

fit执行时的输出数量。

tree_ : 树对象

底层的Tree对象。请参阅 help(sklearn.tree._tree.Tree)Tree对象的属性和 了解决策树结构 以了解这些属性的基本用法。

 

1、 criterion: 特征选取方法,可以是gini(基尼系数),entropy(信息增益),通常选择gini,即CART算法,如果选择后者,则是ID3和C4,.5  此处为分类决策树的

2、 splitter: 特征划分点选择方法,可以是best或random,前者是在特征的全部划分点中找到最优的划分点,后者是在随机选择的部分划分点找到局部最优的划分点,一般在样本量不大的时候,选择best,样本量过大,可以用random

3、 max_depth: 树的最大深度,默认可以不输入,那么不会限制子树的深度,一般在样本少特征也少的情况下,可以不做限制,但是样本过多或者特征过多的情况下,可以设定一个上限,一般取10~100

4、 min_samples_split:节点再划分所需最少样本数,如果节点上的样本树已经低于这个值,则不会再寻找最优的划分点进行划分,且以结点作为叶子节点,默认是2,如果样本过多的情况下,可以设定一个阈值,具体可根据业务需求和数据量来定

5、 min_samples_leaf: 叶子节点所需最少样本数,如果达不到这个阈值,则同一父节点的所有叶子节点均被剪枝,这是一个防止过拟合的参数,可以输入一个具体的值,或小于1的数(会根据样本量计算百分比)

6、 min_weight_fraction_leaf: 叶子节点所有样本权重和,如果低于阈值,则会和兄弟节点一起被剪枝,默认是0,就是不考虑权重问题。这个一般在样本类别偏差较大或有较多缺失值的情况下会考虑

7、 max_features: 划分考虑最大特征数,不输入则默认全部特征,可以选 log2N,sqrt(N),auto或者是小于1的浮点数(百分比)或整数(具体数量的特征)。如果特征特别多时如大于50,可以考虑选择auto来控制决策树的生成时间

8、 max_leaf_nodes:最大叶子节点数,防止过拟合,默认不限制,如果设定了阈值,那么会在阈值范围内得到最优的决策树,样本量过多时可以设定

9、min_impurity_decrease/min_impurity_split: 划分最需最小不纯度,前者是特征选择时低于就不考虑这个特征,后者是如果选取的最优特征划分后达不到这个阈值,则不再划分,节点变成叶子节点

10、class_weight: 类别权重,在样本有较大缺失值或类别偏差较大时可选,防止决策树向类别过大的样本倾斜。可设定或者balanced,后者会自动根据样本的数量分布计算权重,样本数少则权重高,与min_weight_fraction_leaf对应

11、presort: 是否排序,基本不用管

分类回归区别在于以下两点,其余与分类一样

1、criterion:特征选取方法,不再是gini或entropy,而是mse或mae,前者是均方差,后者是和均值的差的绝对值之和,一般用前者,因为前者通常更为精准,且方便计算

2、class_weight:不适合回归,同样的min_weight_fraction_leaf 也没有
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值