机器学习 —— DecisionTree决策树

决策树的优缺点
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据 。既能用于分类,也能用于回归
缺点:可能会产生过度匹配问题 (过拟合)
一、决策树的原理
【二十个问题的游戏】
游戏的规则很简单:参与游戏的一方在脑海里想某个事物,其他参与者向他提问题,只允许提20个问题,问题的答案也只能用对或错回答 。问问题的人通过推断分解,逐步缩小待猜测事物的范围 。决策树的工作原理与20个问题类似,用户输人一系列数据 ,然后给出游戏的答案 。
我们经常使用决策树处理分类问题 。近来的调查表明决策树也是最经常使用的数据挖掘算法 。它之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工作的 。
如果以前没有接触过决策树,完全不用担心,它的概念非常简单 。即使不知道它也可以通过简单的图形了解其工作原理 。
决策树分类的思想类似于找对象 。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话:
女儿:多大年纪了?母亲:26 。女儿:长的帅不帅?母亲:挺帅的 。女儿:收入高不?母亲:不算很高,中等情况 。女儿:是公务员不?母亲:是,在税务局上班呢 。女儿:那好,我去见见 。
这个女孩的决策过程就是典型的分类树决策 。相当于通过年龄、长相、收入和是否公务员将男人分为两个类别:见和不见 。假设这个女孩对男人的要求是:30岁以下、长相中等以上并且是高收入者或中等以上收入的公务员,那么这个可以用下图表示女孩的决策逻辑:
上图完整表达了这个女孩决定是否见一个约会对象的策略,其中绿色节点表示判断条件,橙色节点表示决策结果,箭头表示在一个判断条件在不同情况下的决策路径,图中红色箭头表示了上面例子中女孩的决策过程 。
这幅图基本可以算是一颗决策树,说它“基本可以算”是因为图中的判定条件没有量化,如收入高中低等等,还不能算是严格意义上的决策树,如果将所有条件量化,则就变成真正的决策树了 。
有了上面直观的认识,我们可以正式定义决策树了:
决策树( tree)是一个树结构(可以是二叉树或非二叉树) 。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别 。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果 。
可以看到,决策树的决策过程非常直观,容易被人理解 。目前决策树已经成功运用于医学、制造产业、天文学、分支生物学以及商业等诸多领域 。
之前介绍的K-近邻算法可以完成很多分类任务,但是它最大的缺点就是无法给出数据的内在含义,决策树的主要优势就在于数据形式非常容易理解 。
决策树算法能够读取数据集合,构建类似于上面的决策树 。决策树很多任务都是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,机器学习算法最终将使用这些机器从数据集中创造的规则 。专家系统中经常使用决策树,而且决策树给出结果往往可以匹敌在当前领域具有几十年工作经验的人类专家 。
知道了决策树的定义以及其应用方法,下面介绍决策树的构造算法 。
二、决策树的构造
分类解决离散问题,回归解决连续问题