from sklearn.tree 决策树的基础知识

N~B轰轰的导包

from sklearn.tree import DecisionTreeRegressor #回归
from sklearn.tree import DecisionTreeClassifier #分类

实现的算法基础

  • ID3的优缺点:
    优点: 原理简单.
    缺点: 1. 存在大量对数运算, 对计算机不太友好. 2. 会存在优先对比较离散的特征进行划分的毛病,容易造成误差.

  • C4.5算法: 是对ID3的改进算法. 改进了缺点中的第二点.
    C4.5在ID3计算信息增益的基础上除上特征本身的信息熵, 变成信息增益率.

  • CART : 分类和回归树

  • CART: Classification and Regression Tree 分类和回归树
    计算基尼不纯度: gini impurity
    基尼系数和信息熵表达的含义相似: 越大代表不确定性越大, 越小越确定. 但是范围是在0到1之间.
    ID3和C4.5只能做分类问题. CART可以做回归树.CART的树是二叉树,

api

api

  • class sklearn.tree.DecisionTreeClassifier(criterion=‘gini’, max_depth=None,random_state=None)
    决策树分类器
    criterion:默认是’gini’系数,也可以选择信息增益的熵’entropy’
    max_depth:数的深度大小
    random_state:随机数种子
    method:
    decision_path:返回决策树的路径
  • 决策树的八个参数:Criterion,两个随机性相关的参数(random_state,splitter),五个剪枝参数(max_depth,min_samples_split,min_samples_leaf,max_feature,min_impurity_decrease)
  • 一个属性:feature_importances_
  • 四个接口:fit,score,apply,predict。
  • apply中输入测试集返回每个测试样本所在的叶子节点的索引,predict输入测试集返回每个测试样本的标签。返回的内容一目了然。

决策树的结构,本地保存

  • 1.tree.export_graphviz() 改函数能够导出DOT格式(二进制)

    estimator = DecisionTreeClassifier()
    tree.export_graphviz(estimator,out_file=‘tree.dot’,feature_names=[“年龄”,“性别”,“爱好”,…])
    estimator:估计器
    out_file:文件路径名字
    feature_names:划分树的名字

  • 2.工具:(能够将dot文件转换为pdf,png)
    安装 graphviz
    ubuntu:sudo apt-get install graphviz

  • 3.运行命令
    dot -Tpng tree.dot -o tree.png

决策树优缺点以及改进

  • 优点:
    简单的理解和解释,树木可视化
    需要很少的数据准备,其他技术通常需要数据归一化

    ​ 计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。既能用于分类,也能用于回归

  • 缺点:
    决策树学习者可以创建不能很好地推广数据过于复杂的数
    这被称为过拟合

  • 改进:
    减枝cart算法(决策树API 当中已经实现,随机森林参数调优有关介绍)
    随机森林

注意:企业重要决策,由于决策树很好的分析能力,在决策过程应用较多

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值