决策树实战项目-鸢尾花分类
一、实验介绍
1.1 实验内容
决策树是机器学习中一种简单而又经典的算法。本次实验将带领了解决策树的基本原理,并学习使用 scikit-learn 来构建一个决策树分类模型,最后使用此模型预测鸢尾花的种类。
1.2 实验知识点
- 决策树的基本原理。
- 决策树在生成和修剪中使用的 ID3, C4.5 及 CART 算法。
- 使用 scikit-learn 中提供的决策树分类器进行实例验证。
1.3 实验环境
- python2.7
- Xfce 终端
- ipython
1.4 代码获取
$ wget http://labfile.oss.aliyuncs.com/courses/863/decisionTree.py
二、决策树基本原理
2.1 决策树简介
决策树是一种特殊的树形结构,一般由节点和有向边组成。其中,节点表示特征、属性或者一个类。而有向边包含有判断条件。如图所示,决策树从根节点开始延伸,经过不同的判断条件后,到达不同的子节点。而上层子节点又可以作为父节点被进一步划分为下层子节点。一般情况下,我们从根节点输入数据,经过多次判断后,这些数据就会被分为不同的类别。这就构成了一颗简单的分类决策树。
2.2 决策树学习
我们将决策数的思想引入到机器学习中,就产生了一种简单而又经典的预测方法 —— 决策树学习(Decision Tree Learning),亦简称为决策树。决策树可以用来解决分类或回归问题,分别称之为分类树或回归树。其中,分类树的输出是一个标量,而回归树的一般输出为一个实数。
通常情况下,决策树利用损失函数最小的原则建立模型,然后再利用该模型进行预测。决策树学习通常包含三个阶段:特征选择、树的生成,树的修剪。
2.3 特征选择
特征选择是建立决策树之前十分重要的一步。如果是随机地选择特征,那么所建立决策树的学习效率将会大打折扣。举例来讲,银行采用决策树来解决信用卡审批问题,判断是否向某人发放信用卡可以根据其年龄、工作单位、是否有不动产、历史信贷情况等特征决定。而选择不同的特征,后续生成的决策树就会不一致,这种不一致最终会影响到决策树的分类效率。
通常我们在选择特征时,会考虑到两种不同的指标,分别为:信息增益和信息增益比。要想弄清楚这两个概念,我们就不得不提到信息论中的另一个十分常见的名词 —— 熵。
熵(Entropy)是表示随机变量不确定性的度量。简单