Python机器学习决策树应用

2017年6月15日15:40:20 发表评论 4,433

1、环境搭建

Python在数据挖掘方面有很多的库,如果我们自己去挨个安装可能会耗费比较长的时间,所以这里介绍一个比较好用的工具Anaconda,可以直百度搜索下载安装,里面集成很多已经安装好的需要用到的库,它有2.7和3.6的版本,也有32和64的,我用的是2.7+32的版本,我的建议是32位的,兼容性比较好。

同时,我们还需要安装一个将决策树的dot文件装换为pdf视图的工具,便于后期的查看决策时的样子。我们下载安装Graphviz:http://www.graphviz.org/,然后配置好环境变量,使用命令dot -T pdf [dot文件] -o [输出文件] 就可以将dot文件转换为可视化的pdf文件。

2、Python使用决策树

在Python中,决策树算法是不需要我们来进行编写的,在scikit-learn包中已经包含了这个算法,我们只要负责调用就好。建议大家在学习机器学期之前去看一下numpy, SciPy和matplotlib这几个工具的使用,尤其是numpy是非常重要的科学计算工具。

下面我们看之前我们之前的买电脑的例子。

Python机器学习决策树应用

我在一个data.csv文件中有15个实例数据。当然,数据比较少,我们就做个简答的测试,构造一个决策树来预测某人是否买电脑。

首先我们导入一些我们可能用到的库

读取data.csv中的数据

到此我们已经拿到数据了,但是,这些数据我们是不能直接使用的,因为计算机是不认识字符的,它只认识数字,所以,我们要把字符串转换成数组,这里怎么装换呢?比如,我们把age分为了三类,youth、middle_aged和senior三类,比如第一条数据是youth,name就装换为1 0 0 。当然还有另外的转换方法。也可以使用1 2 3来分别表示三类数据,下面我们使用sklearn自带的工具装换,它就使用的第一种转换方式,youth = 1 0 0 ,ok,下面看代码

首先我们建立两个列表,来分别存储特征向量和标记。

转换数据集

ok,到此为止我们的数据已经准好了,下面就可以开始训练数据,然后建立模型了。

建立决策树模型,方法非常简单,直接调用函数即可。

上面的的代码执行之后决策树模型就建立好了,并且已经保存在了all.dot文件上了。我们可以看一下建立之后的决策树,使用之前下载好的工具,使用命令dot -T pdf all.dot -o out.pdf 执行完之后会在目录下面生成out.pdf,我们打开看一下。

Python机器学习决策树应用

模型我们已经建立好了,我们怎么来进行预测呢,我们接着看下面。

下面我们看一下模型预测的正确率,因为数据比较少,我们就将全部的训练集放进去预测,然后将结果与正确结果对比,看正确率。

到此为止,基本的决策树应用就算完成了,其实在建模那有一些参数是需要调整的,要根据正确率,不断地进行调整,如果特征值比较多的话还有可能牵扯到降维,就比较复杂了,这里就不写了。

下面贴一下完整的代码

3、完整代码

上面的代码从61行开始还做了另外的一个测试,使用了sklearn自带的一个数据集进行的预测,就不讲了,基本原理是一样的,大家自己看把。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: