Python数据挖掘——决策树

本文详细介绍了在Python的sklearn库中使用决策树进行数据挖掘,特别是`sklearn.tree.DecisionTreeClassifier`的参数,如`criterion`、`max_depth`和`min_samples_split`等,并提供了实例和可视化方法。通过决策树的可视化,可以帮助理解模型并优化参数。文章还提到了决策树在处理样本特征多于样本数量时可能出现的过拟合问题,以及如何使用`class_weight`平衡类别分布。
摘要由CSDN通过智能技术生成

sklearn中DecisionTree学习笔记

参考博文:scikit-learn决策树算法类库使用小结


sklearn中的决策树算法包含 DecissionTreeClassifierDecissionTreeRegression ,二者的的用法基本相同。
不同的是: 回归决策树里面的Y值可以是浮点数;criterrion 参数值不同。

sklearn.tree.DecisionTreeClassifier参数

  • criterion

    特征选择标准: ‘gini’ or ‘entropy’ (default=”gini”),前者是基尼系数,后者是信息熵。
    一般说使用默认的基尼系数”gini”就可以了,即CART算法。除非你更喜欢类似ID3, C4.5的最优特征选择方法。

  • splitter

    特征划分点选择标准: ‘best’ or ‘random’ (default=”best”)
    前者在特征的所有划分点中找出最优的划分点。后者是随机的在部分划分点中找局部最优的划分点。
    默认的”best”适合样本量不大的时候,而如果样本数据量非常大,此时决策树构建推荐”random” 。

  • max_depth

    决策树的最大深度: int or None, optional (default=None)
    一般来说,数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间。

  • min_samples_split

    内部节点再划分所需最小样本数:int, float, optional (default=2)
    如果是 int,则取传入值本身作为最小样本数;
    如果是 float,则去 ceil(min_samples_split * 样本数量) 的值作为最小样本数,即向上取整。
    这个值限制了子树继续划分的条件,如果某节点的样本数少于min_samples_split,则不会继续再尝试选择最优特征来进行划分。

  • min_samples_leaf

    叶子节点最少样本数: int, float, optional (default=1)
    如果是 int,则取传入值本身作为最小样本数;
    如果是 float,则去 ceil(min_samples_leaf * 样本数量) 的值作为最小样本数,即向上取整。
    这个值限制了叶子节点最少的样本数,如果某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。

  • min_weight_fraction_leaf

    叶子节点最小的样本权重和:float, optional (default=0.)
    这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会和兄弟节点一起被剪枝。
    默认是0,就是不考虑权重问题。一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重,这时我们就要注意这个值了。

  • max_features

    划分时考虑的最大特征数:int, float, string or None, optional (default=None)
    If int, then consider max_features features at each split.
    If float, then max_features is a percentage and int(max_features * n_features) features are considered at each split.
    If “auto”, then max_features=sqrt(n_features).
    If “sqrt”, then max_features=sqrt(n_features).
    If “log2”, then max_features=log2(n_featur

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值