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
    评论
要在Python中运行这些代码,你需要确保已经安装了相应的包。大多数包都可以使用`pip`进行安装。 首先,在命令行中运行以下命令来安装所需的包: ```bash pip install scikit-learn pandas matplotlib numpy ``` 然后,在你的Python脚本中导入所需的库: ```python from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA import pandas as pd from sklearn import svm import numpy as np import math import matplotlib.pyplot as plt import matplotlib as mpl from matplotlib import colors from sklearn.model_selection import train_test_split from sklearn import datasets from matplotlib.colors import ListedColormap from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler from sklearn.model_selection import StratifiedShuffleSplit, StratifiedKFold from sklearn.model_selection import GridSearchCV from sklearn.model_selection import GridSearchCV, LeaveOneOut, cross_val_predict from sklearn.model_selection import KFold from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score import datetime import multiprocessing as mp from sklearn.ensemble import StackingClassifier from sklearn.pipeline import make_pipeline from sklearn.svm import LinearSVC import random ``` 请确保在运行这些代码之前,已经安装了所需的Python库。如果遇到任何问题,请确保已正确安装这些库,并且版本与代码兼容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值