Google机器学习教程心得(二)决策树与可视化

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中的包,导致找不到,我执行了

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

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

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

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

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

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的解答,应该是少了依赖库

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

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

./configure
make
sudo make install
sudo ldconfig

再运行代码即可。

代码

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

pytorch入门教程 | 第四章:准备图片数据集

在训练神经网络之前,我们必须有数据,作为资深伸手党,必须知道以下几个数据提供源: 1 CIFAR-10 ? CIFAR-10图片样本截图 CIFAR-10是多...

7658
来自专栏fangyangcoder

基于交通灯数据集的端到端分类

抓住11月的尾巴,这里写上昨天做的一个DL的作业吧,作业很简单,基于交通灯的图像分类,但这确是让你从0构建深度学习系统的好例子,很多已有的数据集都封装好了,直接...

1261
来自专栏AI研习社

如何利用微信监管你的TF训练?

之前回答问题【在机器学习模型的训练期间,大概几十分钟到几小时不等,大家都会在等实验的时候做什么?(http://t.cn/Rl8119m)】的时候,说到可以用微...

3464
来自专栏大数据文摘

有这5小段代码在手,轻松实现数据可视化(Python+Matplotlib)

2206
来自专栏生信技能树

点点鼠标就能完成的NMR代谢组学实战

代谢组学几乎完全不涉及生物信息学最核心的序列比对,包括武汉中科院数物所波谱国重实验室等主流科研机构都是利用化学计量学和多元统计分析方法,对通过核磁共振(NMR)...

1053
来自专栏尾尾部落

mac OS 安装XGBoost

XGBoost是一种基于决策树(CART)的分布式的高效的梯度提升算法,它可被应用到分类、回归、排序等任务中,与一般的GBDT算法相比,XGBoost主要有以下...

994
来自专栏人工智能头条

技术 | 机器学习中Python库的3个简单实践——你的图片将由你来创造

【导读】今天为大家介绍机器学习、深度学习中一些优秀、有意思的 Python 库,以及这些库的 Code 实践教程。涉及到的理论与学术内容会附上相应的论文与博客,...

1244
来自专栏MelonTeam专栏

日迹中视频编辑滤镜效果实现方法

导语 本文简要分析,日迹视频解码流程以及视频滤镜的实现原理 需求背景:日迹需要的编辑滤镜效果预览图 图1:日迹滤镜效果 要实现产品想要的...

2478
来自专栏章鱼的慢慢技术路

OpenGL基本框架与三维对象绘制

1292
来自专栏calmound

CSS继承特殊

继承 CSS的某些样式具有继承性。 继承是一种规则,它允许样式不仅作用于某个特定html标签元素,而且应用于其后代    如:在p中的所有字体都为红色     ...

2455

扫码关注云+社区