Python机器学习-Sklearn-decision tree

decision tree

decision tree: supervised learning
目标:表格转化成一棵树,决策树需要找出最佳结点和最佳的分支方法,衡量标准:不纯度
父结点不纯度>子结点,叶子结点不纯度最低

根节点:没有进边有出边
中间节点:有进出
叶子结点:有进边没有出边 每一个叶子结点都是一个类别标签
在这里插入图片描述
sklearn 建模基本流程:
在这里插入图片描述

  1. 用什么?分类树?回归树?
  2. 把训练集放到已经确认好的类去训练,训练模型使用fit接口
  3. 提取信息

分类树

# 分类数需要的代码
clf  = tree.DecisionTreeClassifier() # 1.实例化
clf = clf.fit(x_train, y_train) # 2.用训练集训练数据模型
result = clf.score(x_test, y_test) # 3.导入测试集,从接口调用需要的信息

分类树所有的参数:
在这里插入图片描述

分类树重要参数
  1. criterion 决定不纯度的计算方法
    两种方法
    在这里插入图片描述
    entropy稍微慢一点,决策树计算更加精细(也可能导致过拟合)
    在这里插入图片描述
  2. random_state(每次分支不使用全部的features,而是选取一部分,选取与不纯度相关指标最优的一部分作为分支用的结点)
    输入任意整数,会一直长出同一棵树,让模型稳定下来

splitter 也用来控制随机性,best和random两种选择
在这里插入图片描述
如果加上了splitter反而变低就去掉,一切以分数最高为标准

3.剪枝参数:防止过拟合
max_depth:
- 限制树的最大深度,超过设定深度的树枝全部剪掉
- 适合高维度,低样本量的时候
- 决策树多生长一层,需要的样本量翻一倍
- 从3开始设置尝试
min_samples_leaf:
- 用来设置叶子结点的参数,一个节点在分支后的子节点都必须包含至少min_samples_leaf 个样本数量,否则节点不会发生或者朝着设置的数量的方向上发生。
- 一般搭配max_depth来使用
- 设置太小过拟合,过大阻止模型学习数据
- 建议从=5开始使用,也可以是浮点数作为样本的百分比来使用
min_samples_split:
- 超过min_samples_split数量的节点才允许被分支,否则不被允许分支
max_features
- 限制分枝时考虑的特征个数,超过限制个数的特征全部舍弃,防止过拟合。先用PCA,ICA等降维算法来选择一定的特征数量
min_impurity_decrease:
- 限制信息增益的大小,信息增益小于设定数值的分枝不会发生。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值