机器学习实战(第三篇)-决策树简介

   我们经常使用决策树处理分类问题,近来的调查表明决策树也是最经常使用的数据挖掘算法。它之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工作的。

   如果你以前没有接触过决策树,不用担心,它的概念非常简单。即使不知道它也可以通过简单的图形了解其工作原理。下图代表了一个决策树:

机器学习实战(第三篇)-决策树简介

  正方形代表判断模块(decision block),椭圆代表终止模块(terminating block),表示已经得出结论,可以终止运行。一丛判断模块引出的左右箭头成为分支(branch),它可以到达另一个判断模块或者终止模块。上图构造了一个假想的邮件分类系统,它首先检测发送邮件域名地址。如果地址为myEmployer.com,则将其放在分类“无聊时需要阅读的邮件”中。如果邮件不是来自这个域名,则检查邮件内容中是否包含单词“曲棍球”,如果包含,则将邮件归类到“需要及时处理的朋友邮件”,如果不包含则将邮件归类为“无需阅读的垃圾邮件”。

  前面第二篇我们学习的k-近邻算法可以完成很多分类任务,但是它最大的缺点就是无法给出数据的内在含义,决策树的主要优势在于数据形式非常容易理解。下面我们构造的决策树算法能够读取数据集合,构建类似于上图的决策树。决策树很多任务都是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,机器学习最终将使用这些机器从数据集中创造的规则。专家系统中经常使用决策树,而且决策树给出结果往往可以匹敌在当前领域具有几十年经验的人类专家。

   现在我们已经大致了解了决策树可以完成哪些任务,接下来我们将学习如何从一堆原始数据中构造决策树。首先我们讨论构造决策树的方法,以及如何编写构造树的Python代码;接着提出一些度量算法成功率的方法;最后使用递归建立分类器,并且使用Matplotlib绘制决策树图。构造完成决策树分类器之后,我们将输入一些隐形眼镜的处方数据,并由决策树分类器预测需要的镜片类型。