回归决策树
参数: | 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) 拆分内部节点所需的最小样本数:
更改版本0.18:添加了分数的浮点值。 min_samples_leaf : int,float,optional(default = 1) 叶节点所需的最小样本数。只有
更改版本0.18:添加了分数的浮点值。 min_weight_fraction_leaf : float,optional(默认= 0。) 需要在叶节点处的权重总和(所有输入样本的总和)的最小加权分数。当未提供sample_weight时,样本具有相同的权重。 max_features : int,float,string或None,可选(默认=无) 寻找最佳分割时要考虑的功能数量:
注意:在找到节点样本的至少一个有效分区之前,搜索分割不会停止,即使它需要有效地检查多个 random_state : int,RandomState实例或None,可选(默认=无) 如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例 max_leaf_nodes : int或None,可选(默认=无)
min_impurity_decrease : float,optional(默认= 0。) 如果该分裂导致杂质的减少大于或等于该值,则将分裂节点。 加权杂质减少方程式如下: N_t / N * (杂质 - N_t_R / N_t * right_impurity
- N_t_L / N_t * left_impurity )
版本0.19中的新功能。 min_impurity_split : float,(默认值= 1e-7) 树木生长早期停止的门槛。如果节点的杂质高于阈值,节点将分裂,否则它是叶子。 从版本0.19 presort : bool,optional(默认值= False) 是否预先分配数据以加快拟合中最佳分割的发现。对于大型数据集上的决策树的默认设置,将其设置为true可能会降低培训过程的速度。当使用较小的数据集或受限深度时,这可以加速训练。 |
---|---|
属性: |
返回要素重要性。 max_features_ : int, max_features的推断值。 n_features_ : int
n_outputs_ : int
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 也没有