criterion | 特征选择标准,[entropy, gini](default=gini) 前者是信息熵ID4.5 ,后者是基尼系数CART 。 |
splitter | 特征划分标准,best or random 前者是在所有特征中找最好的切分点 后者是在部分特征中,默认的best 适合样本量不大的时候,而如果样本数据量非常大,此时决策树构建推荐random |
max_depth | 决策树最大深度,int or None, optional (default=None) 设置决策随机森林中的决策树的最大深度,深度越大,越容易过拟合,推荐树的深度为: $ 10 \to 100 $ 之间。 |
min_samples_split | 内部节点再划分所需最小样本数,int, float, optional (default=2) 如果是 int ,则取传入值本身作为最小样本数; 如果是float ,则去 ceil(min_samples_split * 样本数量) 的值作为最小样本数,即向上取整。 |
min_samples_leaf | 叶子节点最少样本数,如果是 int ,则取传入值本身作为最小样本数; 如果是 float ,则 ceil(min_samples_leaf * 样本数量) 的值作为最小样本数,即向上取整。 这个值限制了叶子节点最少的样本数,如果某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。 |
min_weight_fraction_leaf | 这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会和兄弟节点一起被剪枝默认是 $ 0 $ ,就是不考虑权重问题. |
max_features | None (所有),log2 ,sqrt ,N 特征小于50的时候一般使用所有的 |
random_state | 当将参数splitter 设置为random 时,可以通过该参数设置随机种子号,默认为None ,表示使用np.random 产生的随机种子号。 |
max_leaf_nodes | 设置决策树的最大叶子节点个数,该参数与max_depth 等参数参数一起,限制决策树的复杂度,默认为None ,表示不加限制。 |
min_impurity_decrease | 打算划分一个内部结点时,只有当划分后不纯度(可以用criterion 参数指定的度量来描述)减少值不小于该参数指定的值,才会对该结点进行划分,默认值为 $ 0 $ 。可以通过设置该参数来提前结束树的生长。 |
min_impurity_split | 打算划分一个内部结点时,只有当该结点上的不纯度不小于该参数指定的值时,才会对该结点进行划分,默认值为 $ 1e^{-7} $ 。该参数值0.25 版本之后将取消,由min_impurity_decrease 代替。 |
class_weight | 设置样本数据中每个类的权重,这里权重是针对整个类的数据设定的,默认为None,即不施加权重。用户可以用字典型或者字典列表型数据指定每个类的权重,假设样本中存在4个类别,可以按照 [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] 这样的输入形式设置 $ 4 $ 个类的权重分别为1、5、1、1, 而不是[{1:1}, {2:5}, {3:1}, {4:1}] 的形式。该参数还可以设置为balance ,此时系统会按照输入的样本数据自动的计算每个类的权重,计算公式为: $ n_samples / ( n_classes * np.bincount(y) ) $ ,其中n_samples 表示输入样本总数,n_classes 表示输入样本中类别总数,np.bincount(y) 表示计算属于每个类的样本个数,可以看到,属于某个类的样本个数越多时,该类的权重越小。若用户单独指定了每个样本的权重,且也设置了class_weight 参数,则系统会将该样本单独指定的权重乘以class_weight 指定的其类的权重作为该样本最终的权重。 |
presort | 设置对训练数据进行预排序,以提升结点最优划分属性的搜索,默认为False 。在训练集较大时,预排序会降低决策树构建的速度,不推荐使用,但训练集较小或者限制树的深度时,使用预排序能提升树的构建速度。 |