本文将会介绍如何用Python实现一个决策树分类器。主要包含下面两个方面:

  • 什么是决策树?
  • 使用Python实现决策树

什么是决策树

简单来说,决策树算法把数据按照树的结构分成了一系列决策节点。每一个决策节点都是一个问题,然后可以根据这个问题把数据分成两个或多个子节点。这个数一直往下创建,知道最终所有的数据都属于一个类。创建一个最佳决策的标准就是信息增益。下图就是一个简单的决策树示意图:

使用决策树分类器来train机器学习model就是找到决策树的边界。

通过把feature空间分成多个长方形,决策树可以创建很多复杂的决策边界。下面就是我们使用决策树分类器来训练Sklearn IRIS数据的决策边界示意图。feature空间分别由petal length和petal width组成,后面我们会给出详细的代码:

决策树代码示例

下面就是一个示例代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifieriris = datasets.load_iris()X = iris.data[:, 2:]
y = iris.targetX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1, stratify=y)
clf_tree = DecisionTreeClassifier(criterion='gini', max_depth=4, random_state=1)
clf_tree.fit(X_train, y_train)

图形化决策树Model决策边界

下面这个代码可以用来创建上面显示的决策边界图,我们需要install mlxtend这个包:

from mlxtend.plotting import plot_decision_regions
X_combined = np.vstack((X_train, X_test))
y_combined = np.hstack((y_train, y_test))
fig, ax = plt.subplots(figsize=(7, 7))
plot_decision_regions(X_combined, y_combined, clf=clf_tree)
plt.xlabel('petal length [cm]')
plt.ylabel('petal width [cm]')
plt.legend(loc='upper left')
plt.tight_layout()
plt.show()

以树的结构来显示决策树

下面是用数的结构来显示结果,我们会使用sklearn tree类中的plot_tree函数,代码如下:

from sklearn import tree
fig, ax = plt.subplots(figsize=(10, 10))
tree.plot_tree(clf_tree, fontsize=10)
plt.show()

下图就是上面代码显示的结果,注意我们要用plt.subplots(figsize=(10, 10))来让图形大一点,否则显示的图片很小:

好了,简单的Python实现的决策树分类器就介绍到这里了。

更多原创,敬请关注微信公众号,每日更新原创文章:

欢迎关注个人小站:https://donggeitnote.com/2020/07/30/decision-tree-python/

用Python实现一个决策树分类器相关推荐

  1. 用Python实现一个SVM分类器策略

    2019独角兽企业重金招聘Python工程师标准>>> 支持向量机(SVM)是什么意思? 正好最近自己学习机器学习,看到reddit上 Please explain Support ...

  2. 基于Python的决策树分类器与剪枝

    作者|Angel Das 编译|VK 来源|Towards Data Science 介绍 决策树分类器是一种有监督的学习模型,在我们关心可解释性时非常有用. 决策树通过基于每个层次的多个问题做出决策 ...

  3. python输入水果求个数问题_水果爱好者:用Python解决一个简单的分类问题

    作者 | Ocktavia Nurima Putri 来源 | Medium 编辑 | 代码医生团队 在这篇文章中,将使用Scikit-learn在Python中实现几种机器学习算法.将使用一个简单的 ...

  4. 分类决策树 回归决策树_决策树分类器背后的数学

    分类决策树 回归决策树 决策树分类器背后的数学 (Maths behind Decision Tree Classifier) Before we see the python implementat ...

  5. 决策树剪枝python实现_决策树剪枝问题python代码

    决策树在生长过程中有可能长得过于茂盛,对训练集学习的很好,但对新的数据集的预测效果不好,即过拟合,此时生成的模型泛化能力较差.因此,我们需要对决策树进行剪枝,使得生成的模型具有较强的泛化能力. 为了检 ...

  6. 第5章【思考与练习2】将数据集划分为训练集与测试集,查看决策树分类器的性能。 将例5-3中的分类器保存到文件中,然后重新加载预测给出的新数据。

    P101思考与练习2 1.将数据集划分为训练集与测试集,查看决策树分类器的性能. #1. #划分为测试集与训练集 import pandas as pd data = pd.read_csv('dat ...

  7. Python算法:决策树分类

    Python算法:决策树分类 文章目录 Python算法:决策树分类 一.前言 二.决策树算法原理介绍 1.决策树原理 2.决策树构造 3.交叉验证 三.决策树算法函数介绍 1. train_test ...

  8. python代码实现决策树分类

    0. 前言 上一篇博客对决策树算法的思想作了描述,也详细写了如何构造一棵决策树.现在希望用python代码来实现它.此处先调用机器学习中的算法库来实现. 2. python代码实现决策树(决策树分类器 ...

  9. 30分钟 Keras 创建一个图像分类器

    深度学习是使用人工神经网络进行机器学习的一个子集,目前已经被证明在图像分类方面非常强大.尽管这些算法的内部工作在数学上是严格的,但 Python 库(比如 keras)使这些问题对我们所有人都可以接近 ...

最新文章

  1. 40个出色的Wordpress cms插件
  2. Benefits and limitations of genome-wide association studies GWAS--益处和局限性
  3. 仓库管理员怎样做台账_工作日志之仓库管理员与会计之间的对接工作
  4. openwrt开发过程简介
  5. 2246xt u盘开卡详细教程_U盘制作PE及系统安装详细教程!
  6. Android取消EditText自动获取焦点默认行为
  7. FreeNOS源码编译
  8. Java面向对象之抽象方法抽象类、接口的使用
  9. Python websocket
  10. 机器人当上“央视主播”,主持人感慨未来要下岗
  11. base command
  12. Python批量查询恶意地址信息
  13. 超级高铁(Hyperloop)
  14. 支持iphone的打印服务器,MAC苹果电脑系统 如何添加网络打印机(适用于Mac OS)
  15. postgresql 数据库 update更新慢的原因(已解决)
  16. matlab一个m文件定义多个函数,matlab怎么在一个m文件中写多个函数?
  17. uniapp 制作手机app程序, 使用uni.chooseVideo录制视频,视频播放模糊分辨率低的原因
  18. 服务器内存超频性能,服务器内存可以超频么
  19. [BJDCTF2020]Mark loves cat
  20. windows Server 2012修复(CVE-2016-2183)(CVE-2013-2566)(CVE-2015-2808)

热门文章

  1. creo怎么画线_cero草绘基础图文教程,教你CREO工程图绘制中心线的方法
  2. c语言中如何生成1个0到1的随机数
  3. 液压钳power tong
  4. Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)
  5. 贝壳、安居客、天猫好房的数字化博弈
  6. 域名被墙查询以及免备301解决办法/DNS污染解决
  7. 小程序实战 -- 仿网易蜗牛读书
  8. EBS 客户表结构学习(转载)
  9. Linux 嵌入式开发 网络编程: day4
  10. Learning How to Learn