Visualizing a Decision Tree

Google Machine Learning Recipes 2

官方中文博客 http://chinagdg.org/2016/03/machine-learning-recipes-for-new-developers/

视频地址 http://v.youku.com/v_show/id_XMTUzNDE5Mzg0MA==.html?f=26979872&from=y1.2-3.4.3

Github工程地址 https://github.com/ahangchen/GoogleML

欢迎Star,也欢迎到Issue区讨论

我们从Iris问题,学习决策树可视化,了解决策树工作过程。

Why decision Tree

有很多分类器

  • Artificial neural network
  • Support Vector Machine
  • Lions
  • Tigers
  • Bears

为啥有这么多动物……

决策树好处

  • Easy to read and understand
  • 仅有的可解释的几种模型之一(能理解分类器做决策的过程)

决策树就是一系列关于feature的判断作为结点,以label为叶子的一棵树。因此feature越好,结果也越好。

Iris

经典机器学习问题:识别三种Iris

可以在维基看到这个数据集的详细信息,共 50 * 3 = 150 条记录

四个feature:Sepal length, Sepal width, Petal length, Petal width

三个label:setosa, versicolor, virginica。

可以从sklearn中直接导入。

组成

  • metadata: feature_names, target_names(这个其实就是label names),描述数据用
  • data: 具体feature数据,是一个数组,数组中的每个元素是dataset中的一条数据
  • target: 具体label数据,是一个数组

目标

  1. 导入数据
  2. 训练分类器
  3. 预测新的花的label
  4. 查看决策树

测试数据

  • 非训练数据的真实数据,测试分类器的准确度,
  • 这里从dataset中抽出第0,第50,第100条作为测试数据
  • numpy是一个Python的数据处理库,查看官方Tutorial学习更多
  • 测试有很多内容,后面还会有。

环境

可视化使用了pydot,但Pycharm会升级anaconda中的包,导致找不到,我执行了

  1. sudo /home/cwh/anaconda2/bin/conda install -p /home/cwh/anaconda2 pydot -y

重新安装pydot修复pydot找不到的问题;

另外pydot会找不到Graphviz,需要再安装

  1. sudo /home/cwh/anaconda2/bin/conda install -p /home/cwh/anaconda2 Graphviz -y

然后将Graphviz添加到环境变量中,修改/etc/environment为以下内容,重启系统(我的系统是Ubuntu14.04LTS):

  1. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/cwh/android-sdk-linux/ndk-bundle:/home/cwh/android-sdk-linux/platform-tools:/home/cwh/anaconda2/pkgs/graphviz-2.38.0-1/bin"

然后又会有Graphviz中找不到libgvplugin_pango.so.6的问题,根据官网Issue的解答,应该是少了依赖库

  1. ldd /home/cwh/anaconda2/pkgs/graphviz-2.38.0-1/lib/graphviz/libgvplugin_pango.so.6

发现libpng16 not found,于是安装libpng16,在这里下载,然后安装,

  1. ./configure
  2. make
  3. sudo make install
  4. sudo ldconfig

再运行代码即可。

代码

Viz:以Iris为例,导入数据,训练分类器,预测,查看决策树

如果觉得我的文章对您有帮助,请随意打赏~

Google机器学习教程心得(二)决策树与可视化的更多相关文章

  1. Google机器学习教程心得(一)

    Hello world Google Machine Learning Recipes 1 官方中文博客 http://chinagdg.org/2016/03/machine-learning-re ...

  2. Google机器学习教程心得(三) 好的feature

    什么造就好的Feature Google Machine Learning Recipes 3 官方中文博客 http://chinagdg.org/2016/03/machine-learning- ...

  3. 机器学习算法总结(二)——决策树(ID3, C4.5, CART)

    决策树是既可以作为分类算法,又可以作为回归算法,而且在经常被用作为集成算法中的基学习器.决策树是一种很古老的算法,也是很好理解的一种算法,构建决策树的过程本质上是一个递归的过程,采用if-then的规 ...

  4. 【转】机器学习教程 十四-利用tensorflow做手写数字识别

    模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...

  5. 机器学习之梯度提升决策树GBDT

    集成学习总结 简单易学的机器学习算法——梯度提升决策树GBDT GBDT(Gradient Boosting Decision Tree) Boosted Tree:一篇很有见识的文章 https:/ ...

  6. 机器学习算法实践:决策树 (Decision Tree)(转载)

    前言 最近打算系统学习下机器学习的基础算法,避免眼高手低,决定把常用的机器学习基础算法都实现一遍以便加深印象.本文为这系列博客的第一篇,关于决策树(Decision Tree)的算法实现,文中我将对决 ...

  7. python机器学习实战(二)

    python机器学习实战(二) 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7159775.html 前言 这篇noteboo ...

  8. webpack4 系列教程(十二):处理第三方JavaScript库

    教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十二):处理第三方 JavaScript 库>原文地址.或者来我的小站看更多内容:godbm ...

  9. 2017.3.31 spring mvc教程(二)核心流程及配置详解

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

随机推荐

  1. arm mov 指令

    语法格式: mov {条件} 1目的寄存器,2源操作数 作用: MOV指令可完成从另一个寄存器.被移位的寄存器或立即数赋值到目的寄存器.其中S选项为指令的操作结果是否操作CPSR中的条件标志位,当没有 ...

  2. PO VO DAO DTO BO TO概念与区别

    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R Mapping的世界里,有两 ...

  3. MYSQL 关于索引的部分问题!

    1. PRIMARY KEY也可以只指定为KEY.这么做的目的是与其它数据库系统兼容.二来key 是index的同意词! 2. 在UNIQUE索引中,所有的值必须互不相同.如果您在添加新行时使用的关键 ...

  4. Node.js log1: ERR can not find module express

    1.win7下创建项目中提示输入的命令:cd project&&npm install    安装失败 输入上面提示的命令,预期结果:自动安装了依赖 ejs 和 express,失败提 ...

  5. 国内常用ntp服务器ip地址

    ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)s1a.time.edu.cn 北京邮电大学s1b.time.edu.cn 清华大学s1c.time ...

  6. iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)

    1. 来自 http://blog.csdn.net/fanjunxi1990/article/details/9352917 XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的, ...

  7. [置顶] Firefox OS 学习——简单了解知识

    什么是Firefox OS ? Firefox OS 是一个为网页设计而生的能编译和独立的手机网页操作系统,我们相信在接下来的时代,网页应用将充满整个新兴操作设备,这也为当前许多网页开发者不需要太多的 ...

  8. Dictionary到List转换中的性能问题 转

    本文来自:http://www.cnblogs.com/353373440qq/p/3488367.html 在应用泛型中,我们经常使用Dictionary,经常会用到Dictionary到List的 ...

  9. 数据结构:最小生成树--Prim算法

    最小生成树:Prim算法 最小生成树 给定一无向带权图.顶点数是n,要使图连通仅仅需n-1条边.若这n-1条边的权值和最小,则称有这n个顶点和n-1条边构成了图的最小生成树(minimum-cost ...

  10. Devexpress之barManager控件属性

    隐藏菜单栏左边的竖线和右边的箭头? 1.隐藏菜单栏上右边的箭头属性设置:OptionsBar=>>AllowQuickCustomization=False 2.隐藏菜单栏左边的竖线属性设 ...