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数据,是一个数组
目标
- 导入数据
- 训练分类器
- 预测新的花的label
- 查看决策树
测试数据
- 非训练数据的真实数据,测试分类器的准确度,
- 这里从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为例,导入数据,训练分类器,预测,查看决策树
如果觉得我的文章对您有帮助,请随意打赏~

Google机器学习教程心得(二)决策树与可视化的更多相关文章
- Google机器学习教程心得(一)
Hello world Google Machine Learning Recipes 1 官方中文博客 http://chinagdg.org/2016/03/machine-learning-re ...
- Google机器学习教程心得(三) 好的feature
什么造就好的Feature Google Machine Learning Recipes 3 官方中文博客 http://chinagdg.org/2016/03/machine-learning- ...
- 机器学习算法总结(二)——决策树(ID3, C4.5, CART)
决策树是既可以作为分类算法,又可以作为回归算法,而且在经常被用作为集成算法中的基学习器.决策树是一种很古老的算法,也是很好理解的一种算法,构建决策树的过程本质上是一个递归的过程,采用if-then的规 ...
- 【转】机器学习教程 十四-利用tensorflow做手写数字识别
模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...
- 机器学习之梯度提升决策树GBDT
集成学习总结 简单易学的机器学习算法——梯度提升决策树GBDT GBDT(Gradient Boosting Decision Tree) Boosted Tree:一篇很有见识的文章 https:/ ...
- 机器学习算法实践:决策树 (Decision Tree)(转载)
前言 最近打算系统学习下机器学习的基础算法,避免眼高手低,决定把常用的机器学习基础算法都实现一遍以便加深印象.本文为这系列博客的第一篇,关于决策树(Decision Tree)的算法实现,文中我将对决 ...
- python机器学习实战(二)
python机器学习实战(二) 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7159775.html 前言 这篇noteboo ...
- webpack4 系列教程(十二):处理第三方JavaScript库
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十二):处理第三方 JavaScript 库>原文地址.或者来我的小站看更多内容:godbm ...
- 2017.3.31 spring mvc教程(二)核心流程及配置详解
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
随机推荐
- C语言-数据的快速引用
1.常量:程序运行中,不会改变 整形常量 实形常量 字符常量:使用单引号引起的单个字符或者转移字符 ‘a’ 字符串常量:使用双引号引起的单个或者多个字符序列 "ab",存储的时候, ...
- Mobile Matrices
This is an attempt to compile a list of relevant specifications for all modern smart phones and mobi ...
- Ajax 用法, 实现方法,JS原生与JQ实现
AJAX 详解 ajax是实现页面异步加载. 常用于, 前后端数据交互, 实现前端页面无刷新更改操作. 是web前端和后端使用者开发的必备使用技能~~ Ajax操作~ : 俗话原理 : 用俗话来 ...
- ——转 token 介绍
学习Token Token是什么? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Tok ...
- MYSQL 提取时间中的信息的 4 方法
方法 1. year(),month(),day() 方法 2. dayofweek(),dayofmonth(),dayofyear(); 方法 3. hour(),minute(),second( ...
- 正式学习React(四) 前序篇
预热 redux 函数内部包含了大量柯里化函数以及代码组合思想 柯里化函数(curry) 通俗的来讲,可以用一句话概括柯里化函数:返回函数的函数 // example const funcA = (a ...
- mh
http://video.sina.com.cn/vlist/news/zt/mlxyhkhbsl/#131455718 http://www.cnblogs.com/xinye/archive/20 ...
- C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)
从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印. ...
- JS框架~Angularjs
无意中看到anytao的项目,工作台,使用了Angularjs框架,感觉在前端表现上用户体验比较好,于是就简单看了一下,原来使用很简单,或者说,人家把代码封装的很好,以至于开发人员调用时比较简单,呵呵 ...
- C#/winform 旅游管理信息系统
工具:Visual Studio 2015,sql server2014 1.系统概述 该旅游管理信息系统可以为游客和公司业务管理员提供服务.游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具 ...