Google机器学习教程心得(二)决策树与可视化
2016-05-01 20:36
429 查看
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为例,导入数据,训练分类器,预测,查看决策树如果觉得我的文章对您有帮助,请随意打赏~
相关文章推荐
- 谷歌正式开始补偿Nexus 6P重启门和电池门用户:最高赔400美元
- 5 个适合系统管理员使用的告警可视化工具
- 谷歌、雅虎支持中文域名搜索 有助提升搜索引擎优化
- 谷歌音乐搜索栏的提示功能php修正代码
- 谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
- 利用Python绘制MySQL数据图实现数据可视化
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 超级推荐:艾一搜 http://www.iesool.com
- google访问速度很慢
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法