决策树是一类常见的机器学习方法,决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。决策树是个递归生成的过程,如何选择最优划分属性是决策树学习的关键。我们希望决策树的分支节点所包含的样本尽可能属于同一类别,信息熵、增益率和基尼指数都可以用来形容节点的“纯度”。

以下是简单的决策树示例:

# Create a random dataset
rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - rng.rand(16))# Fit regression model
regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(X, y)
regr_2.fit(X, y)# Predict
X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
y_1 = regr_1.predict(X_test)
y_2 = regr_2.predict(X_test)# Plot the results
plt.figure()
plt.scatter(X, y, s=20, edgecolor="black",c="darkorange", label="data")
plt.plot(X_test, y_1, color="cornflowerblue",label="max_depth=2", linewidth=2)
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()

以iris数据集为例,我们可以构建如下的决策树:

from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
X, y = iris.data, iris.target
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)tree.plot_tree(clf)

带结果图片的决策树代码

import numpy as np
import matplotlib.pyplot as pltfrom sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, plot_tree# Parameters
n_classes = 3
plot_colors = "ryb"
plot_step = 0.02# Load data
iris = load_iris()for pairidx, pair in enumerate([[0, 1], [0, 2], [0, 3],[1, 2], [1, 3], [2, 3]]):# We only take the two corresponding featuresX = iris.data[:, pair]y = iris.target# Trainclf = DecisionTreeClassifier().fit(X, y)# Plot the decision boundaryplt.subplot(2, 3, pairidx + 1)x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),np.arange(y_min, y_max, plot_step))plt.tight_layout(h_pad=0.5, w_pad=0.5, pad=2.5)Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)cs = plt.contourf(xx, yy, Z, cmap=plt.cm.RdYlBu)plt.xlabel(iris.feature_names[pair[0]])plt.ylabel(iris.feature_names[pair[1]])# Plot the training pointsfor i, color in zip(range(n_classes), plot_colors):idx = np.where(y == i)plt.scatter(X[idx, 0], X[idx, 1], c=color, label=iris.target_names[i],cmap=plt.cm.RdYlBu, edgecolor='black', s=15)plt.suptitle("Decision surface of a decision tree using paired features")
plt.legend(loc='lower right', borderpad=0, handletextpad=0)
plt.axis("tight")plt.figure()
clf = DecisionTreeClassifier().fit(iris.data, iris.target)
plot_tree(clf, filled=True)
plt.show()

sklearn决策树概述相关推荐

  1. 决策树概述+模块介绍+重要参数(criterion+random_statesplitter+减枝参数+目标权重参数)+回归树(参数+实例+拟合正弦曲线)+泰坦尼克号生存者预测实例

    文章目录 什么是sklearn 一.决策树概述 (一)概述 (二)基础概念 (三)决策树算法的核心是要解决两个问题: 二.模块sklearn.tree的使用 (一) 模块介绍 (二)使用介绍 三.重要 ...

  2. 机器学习-决策树概述及对鸢尾花数据分类python实现利用graphviz模块画出决策树

    文章目录 1. 决策树概述 2. 理论分析 2.1 特征选择 2.1 1 熵&条件熵 2.1.2 信息增益 2.1.3 信息增益比 2.2 决策树的生成 2.2.1 ID3算法 2.2.2 C ...

  3. 第十二课.sklearn决策树实验

    目录 实验数据 数据分析 sklearn决策树分类 实验数据 本实验基于某信息公司的用户数据,使用决策树和可视化工具进行用户流失分析,从而预测哪类用户更容易流失,帮助公司制定相应的预防措施.实验所需数 ...

  4. sklearn——决策树

    总结sklearn决策树的使用,方便以后查阅. 1.分类决策树   (基于CART树) 原型: 参数: 2.回归分类树 原型: 参数: 3.export_graphviz 当训练完毕一颗决策树时,可以 ...

  5. sklearn决策树预剪枝

    <老饼讲解机器学习>http://ml.bbbdata.com/teach#102 目录 一.预剪枝即调参 二.调参方法 (1) 默认值预观察生长的树 (2) 参数限制节点过分生长 为预防 ...

  6. 细讲sklearn决策树后剪枝(带例子)

    <老饼讲解机器学习>http://ml.bbbdata.com/teach#103 目录 一.CCP后剪枝简介 二.剪枝操作过程 (1) 查看CCP路径 (2)根据CCP路径剪树 为预防模 ...

  7. sklearn 决策树例子_决策树DecisionTree(附代码实现)

    开局一张图(网图,随便找的). 对这种类型的图很熟悉的小伙伴应该马上就看出来了,这是一颗决策树,没错今天我们的主题就是理解和实现决策树. 决策树和我们以前学过的算法稍微有点不一样,它是个树形结构.决策 ...

  8. sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解

    文章目录 决策分类树 引入 重要参数 1,criterion 2,splitter 3,max_depth 4,min_samples_leaf 5,min_samples_split 6,max_f ...

  9. sklearn 决策树例子_机器学习|决策树的生成过程是怎样?(一)

    本文笔者将用具体例子讲述决策树的构建过程,分析:决策树生成过程中有什么样的问题? 一.基本概念 决策树的定义: 首先,决策树是一种有监督的分类算法--即给定X,Y值,构建X,Y的映射关系. 不同于线性 ...

最新文章

  1. php arraymap()函数
  2. 图示评审技术_编制清单报价最需要施工技术课程中的哪些知识?
  3. 初学python还是swift-请问零基础学习python 和swift哪个更好入门呢?
  4. MySQL自动备份到本地数据库_MYSQL数据库自动本地/异地双备份/MYSQL增量备份
  5. mano安全_爱立信:O-RAN存在的安全风险
  6. mysqldump 使用备忘
  7. 那些拆中台的CTO,70%被裁了
  8. 文字不间断横向滚动 代码 IE FireFox兼容代码
  9. linux 9 -- 交互式使用Bash Shell
  10. STM32G0系列的启动配置与程序下载
  11. SAP 物料编码更改标准解决方案
  12. 当前版本与卡刷包android_安卓SuperSU卡刷包 V2.82 SR5 安卓版下载 - win10专业版官网 - win10系统之家...
  13. 简单说一下寄存器寻址
  14. 360校招编程之城市修建
  15. Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》
  16. Ubuntu上实现蓝牙串口通讯(SPP)
  17. 手机连接Charles代理,手机上不了网
  18. Oracle读取数据库中表填充,Oracle数据库中查看所有表和字段以及表注释.字段注释...
  19. 为什么深层神经网络难以训练_深度学习与统计力学(III) :神经网络的误差曲面...
  20. 使用jQuery跳转到指定页面

热门文章

  1. matlab求kcf算法响应图_Kernelized Correlation Filters(KCF)算法
  2. 25岁男生要有多少存款才能让女友满意?
  3. 雨中的蚊子为啥不会被雨滴砸死?
  4. 分享一个理工男必学的撩妹姿势
  5. 新一代来袭︱不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...
  6. 都说Python库千千万,这几个你认识不?
  7. 想转行人工智能?哈佛博士后有话说!
  8. Logistic回归主要应用领域
  9. 管理系统中计算机应用怎么自学,有自学的没,管理系统中计算机应用上机题。...
  10. 一般将来时语法课教案_速看,如何在考场写出一篇脱颖而出的教案