from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier

1.载入iris数据集(from sklearn import datasets)

x = iris.data[:,[0,2]]   # x = iris.data[:, 0:2]
y = iris.target

2.设置训练集中的数据和标签(x是特征集合,二维数组,y是标签值集合,一维数组)

clf = DecisionTreeClassifier(max_depth = 3)
clf.fit(x,y)

3.训练模型(DecisionTreeClassifier涉及到参数max_depth及其他,参考sklearn)

最后,是决策树的可视化,预备工作为:

    scikit-learn中决策树的可视化一般需要安装graphviz。主要包括graphviz的安装和python的graphviz插件的安装。

    第一步是安装graphviz。下载地址在:http://www.graphviz.org/。如果你是linux,可以用apt-get或者yum的方法安装。如果是windows,就在官网下载msi文件安装。无论是linux还是windows,装完后都要设置环境变量,将graphviz的bin目录加到PATH,比如我是windows,将C:/Program Files (x86)/Graphviz2.38/bin/加入了PATH

    第二步是安装python插件graphviz: pip install graphviz

    第三步是安装python插件pydotplus。这个没有什么好说的: pip install pydotplus

    这样环境就搭好了,若仍然找不到graphviz,可以在代码里面加入这一行:

    os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

两种方法:

(1)生成pdf

import pydotplus
dot_data = tree.export_graphviz(clf, out_file=None)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("iris.pdf")

(2)直接在jupyter中显示

from IPython.display import Image
from sklearn import tree
import pydotplus
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=["sepal length","sepal width"],
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())

文章参考:https://www.cnblogs.com/pinard/p/6056319.html

最新文章

  1. PhotoShop算法原理解析系列 - 像素化---》碎片。
  2. DFA 最小化
  3. google搜索技巧汇总
  4. 06章 Struts2数据校验
  5. Codeforces 543D. Road Improvement (树dp + 乘法逆元)
  6. [转] C# Winform 拦截关闭按钮触发的事件
  7. ALERT日志中常见监听相关报错之中的一个:ORA-609错误的排查
  8. [已解决问题] Could not find class XXX referenced from method XXX.<YYY>
  9. Jquery之家5个顶级Material Design框架
  10. Mac 安装工具包brew
  11. BOS物流管理系统-第八天
  12. git 常用使用及问题记录
  13. Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖
  14. Chipmunk僵尸物理对象的出现和解决(二)
  15. 【原创】大数据基础之Impala(3)部分调优
  16. Linux 系统分级及root权限相关
  17. java内存溢出的解决思路
  18. Python 初始函数
  19. Thread.join方法的解析(转)
  20. 【从0到1学Web前端】CSS伪类和伪元素 分类: HTML+CSS 2015-06-02 22:29 1065人阅读 评论(0) 收藏

热门文章

  1. solr全文检索学习
  2. Spring Cloud 整合分布式链路追踪系统Sleuth和ZipKin实战,分析系统瓶颈
  3. php 检测敏感字
  4. 处理stale的pg
  5. linux系统克隆系统盘
  6. Unity CommandBuffer物体轮廓
  7. HTTP请求响应信息字段总结(长期更新)
  8. Folx使用教程:怎么通过设置标签分类下载内容
  9. word教程字体和段落设置
  10. ubuntu安装imagick扩展