sklearn 决策树例子_Sklearn库例子——决策树分类
1、关于决策树:决策树是一个非参数的监督式学习方法,主要用于分类和回归。算法的目标是通过推断数据特征,学习决策规则从而创建一个预测目标变量的模型。如下如所示,决策树通过一系列if-then-else 决策规则 近似估计一个正弦曲线。
决策树优势:
简单易懂,原理清晰,决策树可以实现可视化
数据准备简单。其他的方法需要实现数据归一化,创建虚拟变量,删除空白变量。(注意:这个模块不支持缺失值)
使用决策树的代价是数据点的对数级别。
能够处理数值和分类数据
能够处理多路输出问题
使用白盒子模型(内部结构可以直接观测的模型)。一个给定的情况是可以观测的,那么就可以用布尔逻辑解释这个结果。相反,如果在一个黑盒模型(ANN),结果可能很难解释
可以通过统计学检验验证模型。这也使得模型的可靠性计算变得可能
即使模型假设违反产生数据的真实模型,表现性能依旧很好。
决策树劣势:
可能会建立过于复杂的规则,即过拟合。为避免这个问题,剪枝、设置叶节点的最小样本数量、设置决策树的最大深度有时候是必要的。
决策树有时候是不稳定的,因为数据微小的变动,可能生成完全不同的决策树。 可以通过总体平均(ensemble)减缓这个问题。应该指的是多次实验。
学习最优决策树是一个NP完全问题。所以,实际决策树学习算法是基于试探性算法,例如在每个节点实现局部最优值的贪心算法。这样的算法是无法保证返回一个全局最优的决策树。可以通过随机选择特征和样本训练多个决策树来缓解这个问题。
有些问题学习起来非常难,因为决策树很难表达。如:异或问题、奇偶校验或多路复用器问题
如果有些因素占据支配地位,决策树是有偏的。因此建议在拟合决策树之前先平衡数据的影响因子。
2、分类
DecisionTreeClassifier 能够实现多类别的分类。输入两个向量:向量X,大小为[n_samples,n_features],用于记录训练样本;向量Y,大小为[n_samples],用于存储训练样本的类标签。
from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.]])
clf.predict_proba([[2., 2.]])
下面我们使用iris数据集:
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
# export the tree in Graphviz format using the export_graphviz exporter
with open("iris.dot", 'w') as f:
f = tree.export_graphviz(clf, out_file=f)
# predict the class of samples
clf.predict(iris.data[:1, :])
# the probability of each class
clf.predict_proba(iris.data[:1, :])
安装Graphviz将其添加到环境变量,使用dot创建一个PDF文件。dot -Tpdf iris.dot -o iris.pdf
运行结果在文件夹下会有:
这两个文件。我们打开iris.pdf
你也可以通过安装pydotplus包。安装方式:pip install pydotplus.在Python 中直接生成:
import pydotplus
dot_data = tree.export_graphviz(clf, out_file=None)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("iris.pdf")
下面代码是Sklearn官网上的演示代码:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
# Parameters
n_classes = 3
plot_colors = "bry"
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 features
X = iris.data[:, pair]
y = iris.target
# Train
clf = DecisionTreeClassifier().fit(X, y)
# Plot the decision boundary
plt.subplot(2, 3, pairidx + 1)
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),
np.arange(y_min, y_max, plot_step))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
cs = plt.contourf(xx, yy, Z, cmap=plt.cm.Paired)
plt.xlabel(iris.feature_names[pair[0]])
plt.ylabel(iris.feature_names[pair[1]])
plt.axis("tight")
# Plot the training points
for 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.Paired)
plt.axis("tight")
plt.suptitle("Decision surface of a decision tree using paired features")
plt.legend()
plt.show()
代码运行结果:
sklearn 决策树例子_Sklearn库例子——决策树分类相关推荐
- 利用sklearn库决策树模型对iris数据多分类并进行评估
1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...
- python决策树怎么选择_机器学习|决策树分类与python实现
目录: 1.决策树简介 2.决策树生成 a) 选择标准--熵 b) 信息增益--ID3算法 c) 信息增益率--C4.5算法 d) Gini系数--CART算法 e) 评价标准--评价函数 3.剪枝操 ...
- [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 机器学习算法——决策树算法详细介绍,并使用sklearn实现案例预测,可视化决策树
目录 一.决策树算法简介 二.决策树分类原理 1.熵 1.1 概念 1.2 案例 2.决策树的划分依据一:信息增益 2.1 概念 2.2 案例: 3.决策树的划分依据二:信息增益率 3.1 概念 3. ...
- Python集成机器学习:用AdaBoost、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
最近我们被客户要求撰写关于集成机器的研究报告,包括一些图形和统计输出. Boosting 是一类集成机器学习算法,涉及结合许多弱学习器的预测. 视频:从决策树到随机森林:R语言信用卡违约分析信贷数据实 ...
- sklearn基础篇(六)-- 决策树(decision tree)
决策树是广泛用于分类和回归任务的模型.本质上,它从一层层的if/else问题中进行学习,并得出结论.决策树学习算法包括3部分:特征选择.树的生成和树的剪枝.常用的算法有ID3.C4.5和CART. 想 ...
- 基于sklearn的线性回归模型实现多变量决策树
多变量决策树 1 多变量决策树简介 2 实现思路 3 代码中的函数说明 3.1 class TreeNode 3.2 trainLinear 3.3 binaryTrainSet 3.4 score ...
- sklearn初探(三):决策树及其可视化
sklearn初探(三):决策树及其可视化 前言 这是一个完整的工程,涵盖了从数据获得与处理,最后到构建决策树模型的全部过程.完整的源代码我会在文章最后给出. 概述 DecisionTreeClass ...
- 【机器学习】决策树案例三:利用决策树进行泰坦尼克号事故人员存活分类预测
利用决策树进行泰坦尼克号事故人员存活分类预测 3 利用决策树进行泰坦尼克号事故人员存活分类预测 3.1 导入模块与加载数据 3.2 特征工程 3.3 划分数据 3.4 模型创建与应用 3.5 模型可视 ...
最新文章
- 北大青鸟口碑好才真的好
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- 使用Docker for Windows初体验
- 实战NFS服务搭建与配置
- thinkPHP5中的与原本的字母方法用什么东西替代了?
- Oracle系统表查询方法
- 12306微信小程序上线 提供余票查询暂不支持购票
- hdu3336 Count the string
- 视觉尺寸测量设备系统
- goland 方法注释_Golang 注释
- Macbooster8免费mac清理垃圾软件功能介绍
- 微信二级不死域名是什么意思?被封后还能访问吗?
- 前K个高频元素[小根堆和大根堆的使用]
- 华为手机 从服务器获取安装包信息,华为openGauss 获取并校验安装包
- 苹果11怎样设置自动锁屏 iPhone11自动锁屏操作方法
- 服务器项目迁移本地,云服务器迁移本地
- 制作STG游戏的初步构思
- 2020年6月电子学会Python等级考试试卷(一级)考题解析
- FastDFS+Nginx安装配置
- 编写一程序,输入月份号,输出该月的英文月名。例如,输入3,则输出“March“,要求用指针数值处理。
热门文章
- vi/vim: 文件浏览和缓冲区浏览
- Custom Basic Authentication for IIS
- OpenCV-闭运算(CLOSE)
- 西安计算机二级12月,2017年12月计算机二级MS Office习题答案(一)
- python实习目的_python爬虫系列---为什么要学习爬虫
- vue 修改文件怎么启动_Jupyter Notebook如何修改启动时的默认文件路径(Windows系统)...
- Sublime Text中全局查找方法
- 剑指offer面试题[21]包含min函数的栈
- 安装LR提示“此计算机缺少 vc2005_sp1_with_atl_fix_redist,请安装所有缺少的必要组件,然后重新运行此安装“
- 21天Jmeter打卡Day10线程用户之setUp和tearDown