sklearn决策树算法参数详解

sklearn决策树算法参数详解

  • 1. 决策树分类器DecisionTreeClassifier
  • 2.回归树——CART

1. 决策树分类器DecisionTreeClassifier

from sklearn.tree import DecisionTreeClassifier

# 创建ID3决策树
clf = DecisionTreeClassifier(criterion='entropy')

# 创建CART分类决策树
clf = DecisionTreeClassifier(criterion='gini')

DecisionTreeClassifier()的参数如下:

DecisionTreeClassifier(class_weight=None, criterion='entropy', max_depth=None,
            max_features=None, max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, presort=False, random_state=None,
            splitter='best')
  • class_weight:类别权重,默认为None。
    可选值还有:dict,balanced;
    dict:指定样本各类别的权重,权重大的类别在决策树构造的时候会进行偏倚;balanced:算法自己计算权重,样本量少的类别所对应的样本权重会更高;
  • criterion:在基于特征划分数据集合时,选择特征的标准。默认是gini,也可以是entropy。
  • max_depth:决策树的最大深度,我们可以控制决策树的深度来防止决策树过拟合
  • max_features:在划分数据集时考虑的最多的特征值数量。为int或float类型。其中int值是每次split时最大特征数;float值是百分数,即特征数=max_features*n_features
  • max_leaf_nodes:最大叶子节点数。int类型,默认为None。默认情况下是不设置最大叶子节点数,特征不多时,不用设置。特征多时,可以通过设置最大叶子节点数,防止过拟合。
  • min_impurity_decrease:节点划分最小不纯度。float类型,默认值为0。节点的不纯度必须大于这个阈值,否则该节点不再生成子节点。通过设置,可以限制决策树的增长。
  • min_impurity_split:信息增益的阀值。信息增益必须大于这个阀值,否则不分裂
  • min_samples_leaf:叶子结点需要的最小样本数。如果其叶子结点数小于这个阈值,则会和兄弟节点一起被剪枝。min_samples_leaf的取值可以是int或float类型
    int类型:最小样本数量
    float类型:表示一个百分比。即:最小样本数=min_samples_leaf * 样本数量n,并向上取整。
  • min_samples_split:当节点的样本数少于min_samples_split时,不再继续分裂。默认值为2.
  • min_weight_fraction_leaf:默认为0.0
  • presort:bool类型,默认为False。表示在拟合前,是否对数据进行排序来加快树的构建。当数据集较小时,使用presort=true会加快分类器构建速度。当数据集较为庞大时,presort=true又会使得树的构建十分缓慢
  • random_state
  • splitter:在构造树时,选择属性特征的原则,可以是best或random。默认是best,best代表在所有的特征中选择最好的,random代表在部分特征中选择最好的。

2.回归树——CART

from sklearn.tree import DecisionTreeRegressor

# 构建CART回归树
dtr = DecisionTreeRegressor()

DecisionTreeRegressor()详细参数如下:

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, presort=False, random_state=None,
            splitter='best')

你可能感兴趣的:(sklearn,决策树,sklearn,参数)