额,这个吧,涉及到了机器学习的决策树,关于这两点,我就不详细介绍了,百度了解一下!
来,开始正题!
实战背景
眼科医生是如何判断患者需要佩戴隐形眼镜的类型的?
一旦理解了决策树的工作原理
我们甚至也可以帮助人们判断需要佩戴的镜片类型!
数据如下图所示:
可以使用已经写好的Python程序构建决策树,不过出于继续学习的目的,小编使用Sklearn来实现。
用Sklearn构建决策树
本次实战内容使用的是DecisionTreeClassifier和export_graphviz,前者用于决策树构建,后者用于决策树可视化。
参数说明如下:
除了这些参数要注意以外,其他在调参时的注意点有:
sklearn.tree.DecisionTreeClassifier()提供了一些方法供我们使用,如下图所示:
了解到这些,我们就可以编写代码了:
运行结果:
为了对string类型的数据序列化,需要先生成pandas数据,这样方便我们的序列化工作。这里我使用的方法是,原始数据->字典->pandas数据。
编写代码如下:
从运行结果可以看出,顺利生成pandas数据。
接下来,将数据序列化,编写代码如下:
从打印结果可以看到,我们已经将数据顺利序列化,接下来。我们就可以fit()数据,构建决策树了。
使用Graphviz可视化决策树
安装Pydotplus
pydotplus可以在CMD窗口中,直接使用指令安装:pip3 install pydotplus
安装Graphviz
添加好环境变量之后,我们就可以正常使用Graphviz了。
开始编写代码
Talk is Cheap, show me the code.(废话少说,放码过来)。可视化部分的代码不难,都是有套路的,直接填参数就好,详细内容可以查看官方教程。
运行代码,在该python文件保存的相同目录下,会生成一个名为tree的PDF文件,打开文件,我们就可以看到决策树的可视化效果图了。
来总结一下吧
决策树的优点:
决策树的缺点:
今天就到这结束了,小伙伴们有什么疑问的话都可以问我~