用Python实现一个决策树分类器
本文将会介绍如何用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实现一个决策树分类器相关推荐
- 用Python实现一个SVM分类器策略
2019独角兽企业重金招聘Python工程师标准>>> 支持向量机(SVM)是什么意思? 正好最近自己学习机器学习,看到reddit上 Please explain Support ...
- 基于Python的决策树分类器与剪枝
作者|Angel Das 编译|VK 来源|Towards Data Science 介绍 决策树分类器是一种有监督的学习模型,在我们关心可解释性时非常有用. 决策树通过基于每个层次的多个问题做出决策 ...
- python输入水果求个数问题_水果爱好者:用Python解决一个简单的分类问题
作者 | Ocktavia Nurima Putri 来源 | Medium 编辑 | 代码医生团队 在这篇文章中,将使用Scikit-learn在Python中实现几种机器学习算法.将使用一个简单的 ...
- 分类决策树 回归决策树_决策树分类器背后的数学
分类决策树 回归决策树 决策树分类器背后的数学 (Maths behind Decision Tree Classifier) Before we see the python implementat ...
- 决策树剪枝python实现_决策树剪枝问题python代码
决策树在生长过程中有可能长得过于茂盛,对训练集学习的很好,但对新的数据集的预测效果不好,即过拟合,此时生成的模型泛化能力较差.因此,我们需要对决策树进行剪枝,使得生成的模型具有较强的泛化能力. 为了检 ...
- 第5章【思考与练习2】将数据集划分为训练集与测试集,查看决策树分类器的性能。 将例5-3中的分类器保存到文件中,然后重新加载预测给出的新数据。
P101思考与练习2 1.将数据集划分为训练集与测试集,查看决策树分类器的性能. #1. #划分为测试集与训练集 import pandas as pd data = pd.read_csv('dat ...
- Python算法:决策树分类
Python算法:决策树分类 文章目录 Python算法:决策树分类 一.前言 二.决策树算法原理介绍 1.决策树原理 2.决策树构造 3.交叉验证 三.决策树算法函数介绍 1. train_test ...
- python代码实现决策树分类
0. 前言 上一篇博客对决策树算法的思想作了描述,也详细写了如何构造一棵决策树.现在希望用python代码来实现它.此处先调用机器学习中的算法库来实现. 2. python代码实现决策树(决策树分类器 ...
- 30分钟 Keras 创建一个图像分类器
深度学习是使用人工神经网络进行机器学习的一个子集,目前已经被证明在图像分类方面非常强大.尽管这些算法的内部工作在数学上是严格的,但 Python 库(比如 keras)使这些问题对我们所有人都可以接近 ...
最新文章
- 40个出色的Wordpress cms插件
- Benefits and limitations of genome-wide association studies GWAS--益处和局限性
- 仓库管理员怎样做台账_工作日志之仓库管理员与会计之间的对接工作
- openwrt开发过程简介
- 2246xt u盘开卡详细教程_U盘制作PE及系统安装详细教程!
- Android取消EditText自动获取焦点默认行为
- FreeNOS源码编译
- Java面向对象之抽象方法抽象类、接口的使用
- Python websocket
- 机器人当上“央视主播”,主持人感慨未来要下岗
- base command
- Python批量查询恶意地址信息
- 超级高铁(Hyperloop)
- 支持iphone的打印服务器,MAC苹果电脑系统 如何添加网络打印机(适用于Mac OS)
- postgresql 数据库 update更新慢的原因(已解决)
- matlab一个m文件定义多个函数,matlab怎么在一个m文件中写多个函数?
- uniapp 制作手机app程序, 使用uni.chooseVideo录制视频,视频播放模糊分辨率低的原因
- 服务器内存超频性能,服务器内存可以超频么
- [BJDCTF2020]Mark loves cat
- windows Server 2012修复(CVE-2016-2183)(CVE-2013-2566)(CVE-2015-2808)