热门标签 | 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;编程笔记


推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
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社区 版权所有