热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享python sklearn 画出决策树并保存为PDF的实现过程

利用sklearn画出决策树并保存为pdf下载graphviz进入官网下载并安装:https:graphviz.gitlab.io_pagesdownloaddownload_wi

利用sklearn画出决策树并保存为pdf

下载graphviz

进入官网下载并安装:

https://graphviz.gitlab.io/_pages/download/download_windows.html

并将下列路径配置为环境变量:

  • d:softwaregraphvizbin

在cmd中测试:

  • dot -version

python sklearn 画出决策树并保存为PDF的实现过程

python代码

import numpy as np  import pandas as pd  from sklearn import tree  import graphviz  # x,y是sklearn中需要拟合的数据  x = np.array(exam_train)  y = np.array(classes_train)  clf = tree.decisiontreeclassifier(criterion='entropy', class_weight='balanced', max_depth=25)  clf = clf.fit(x, y)  dot_data = tree.export_graphviz(clf, out_file=none, feature_names=none, filled=true, rounded=true)  # 重要参数可定制  graph = graphviz.source(dot_data)  graph.render(view=true, format="pdf", filename="decisiontree_pdf")

可以生成一张贼帅的决策树pdf:

python sklearn 画出决策树并保存为PDF的实现过程

python sklearn 决策树运用

数据形式(tree.csv)

age look income orderly target  older ugly low yes no  young ugly high no no  young handsome low no no  young handsome high yes yes  young handsome medium yes yes  young handsome medium no no

python sklearn 画出决策树并保存为PDF的实现过程

python源代码:

# -*- coding:utf-8*-  # 将字典 转化为 sklearn 用的数据形式 数据型 矩阵  from sklearn.feature_extraction import dictvectorizer  import csv  from sklearn import preprocessing  from sklearn import tree    allelectrOnicsdata= open('c:/pic/data/tree.csv','rb')  reader = csv.reader(allelectronicsdata)  header = reader.next()  # print header  ## 数据预处理  featurelist = []  labellist = []  for row in reader:      # print row[-1]      labellist.append(row[-1])      # 下面这几步的目的是为了让特征值转化成一种字典的形式,就可以调用sk-learn里面的dictvectorizer,直接将特征的类别值转化成0,1值      rowdict = {}      for i in range(1, len(row) - 1):          rowdict[header[i]] = row[i]      featurelist.append(rowdict)    for each in featurelist:      print each    # vectorize features  vec = dictvectorizer()  dummyx = vec.fit_transform(featurelist).toarray()  print("dummyx:"+str(dummyx))  print(vec.get_feature_names())    # label的转化,直接用preprocessing的labelbinarizer方法  lb = preprocessing.labelbinarizer()  dummyy = lb.fit_transform(labellist)  print("dummyy:"+str(dummyy))  print("labellist:"+str(labellist))    #criterion是选择决策树节点的 标准 ,这里是按照“熵”为标准,即id3算法;默认标准是gini index,即cart算法。  clf = tree.decisiontreeclassifier()  clf = clf.fit(dummyx,dummyy)  print("clf:"+str(clf))  # 导入相关函数,可视化决策树  # 导出的结果是一个dot文件(在系统默认路劲),需要安装graphviz才能将它住哪华为pdf或png格式  # 输出的dot文件可以使用graphvize软件转为pdf,graphvize安装目录中的bin目录放入到环境变量的path中  # 使用如下命令  #cmd  # dot -tpdf  c:/tree.dot -o c:/tree.pdf  #下载地址:http://www.graphviz.org/download_windows.php  #生成dot文件  with open("c:/tree.dot",'w') as f:      f = tree.export_graphviz(clf, feature_names= vec.get_feature_names(),out_file= f)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持<编程笔记>。

需要了解更多python教程分享python sklearn 画出决策树并保存为PDF的实现过程,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • 本文介绍了如何将PPT格式转换成PDF,并推荐了一款高效的PPT转换成PDF转换器。该转换器利用最新的超线程技术核心和多核心CPU性能,提高了转换效率和转换质量。同时,该转换器具备万能转换模式,可以轻松实现不同类型、不同内容和不同排版的PPT文件的转换。用户可以通过下载链接获取该转换器。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • PatchODAX8: ... [详细]
author-avatar
岁月无言0106
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有