Youtube subtitles download by mo.dbxdb.com
[MUSIC PLAYING]
上集，我们使用决策树作分类器
这集我们将完善代码使其变得可视化
这样我们让更容易了解它的工作过程
有许多类型的分类器
一些你可能已经听说过――诸如神经网络
或支持向量机
那么为什么我们要从使用决策树开始?
其实是因为决策树有个非常特殊的性质
就是它的可读性很强，易于理解
事实上,它是为数不多的几个可判断的模型之一
这些模型有助于我们理解为何分类器
可以做出决策
这是让人觉得惊奇的事，也是在实践中最有用的部分
开始前， 我将介绍一个
今天要用到的数据集
叫作Iris.
Iris 是一个经典的机器学习问题
你想要弄清楚某朵花是属于哪一类的
你得根据不同的度量方法
例如花瓣的长度和宽度
数据集里包含三种不同种类的花
它们都是鸢尾花的品种--Setosa（山鸢尾）、Versicolour（杂色鸢尾）
以及Virginica（维吉尼亚鸢尾）。
接下来，你可以看到每个种类
我们给出了50个样本，
也就是总的有150个样本
每个样本都有四个属性
分别是花萼的长度，花萼的宽度，花瓣的长度，花瓣的宽度
类似之前的苹果橘子问题
前四列给出了四中属性，最后一列给出了标签
也就是对应行的花的种类
我们的目标是使用这个数据集来训练分类器。
然后给我们一朵花
我们就可以使用分类器预测这朵花的种类
即使我们从没见过这种花
了解如何处理现有的数据集是非常有用的
那就让我们将Iris数据集导入scikit-learn中
看看它们在代码中的表示形式
scikit中提供了一些示例数据集，
其中就包括Iris,
还有一些公用程式
便于我们引用
我们可以这样将Iris 引入代码中
从维基百科下载的数据集包括表和一些元数据
元数据告诉我们
那些属性的名称
以及不同种类的花的名字
属性和样本都包含在
数据变量中
例如,如果我打印第一个条目,
就可以得到这朵花的预测结果
这些对应属性的值 所以第一个值指的是花萼长度
第二个指的是花萼的宽度
以此类推
变量target[]指的是标签内容
同样,
让我们把第一个打印出来看看
标签0表示这是一朵setosa.
看着这个维基百科上的图
可以看到我们只是把第一行打印出来了
数据和target变量都有150条
你也可以像这样遍历数据集
并打印出来
既然我们已经知道了怎么处理数据集
我们就要开始训练分类器
但是在这之前，第一件事是要分割数据
我把几个样本弄出来
先放在一边
我们把先放在一边的数据称为测试数据
把这些数据跟我们的训练数据分开
之后我们将用测试数据
来验证分类器在分类没遇到过的数据的准确性
测试是在机器学习
实践中非常重要的部分
在之后的课程中我们将会更详细的介绍
针对这个例子，我就对每种种类的花
移除一个样本
因为数据集是按顺序排列的
所以第一个setosa的索引号为0
第一个versicolor的索引号为50, 以此类推
语法看起来有点复杂,
但我所做就是从数据和目标变量中删除3条样本。
然后我将设两个新的变量集
一个用来训练，另一个用来测试
绝大部分的数据进行训练
只将刚刚移除的样本作测试
现在我们就可以像上集一样创建一个决策树分类器
然后用训练数据训练它
在作可视化之前，让我们用决策树
对我们的测试数据作分类
每种种类的花我们都留了一个样本
然后打印出它们的标签
现在让我们看看决策树预测的结果
我们给决策树提供测试样本的属性
就可以得到标签
可以看到预测的结果和测试样本是一致的
这说明决策树的结果是正确的
这只是一个非常简单的测试
后面将有更加详细的介绍
现在我们要将决策树可视化
这有助于我们理解分类器的工作原理
从scikit教程中复制粘贴
一部分代码
因为这些代码是用来做可视化的
与机器学习的概念无关
所以细节部分我就不做介绍了
现在我们将两个样本的数据放在一起
并创建一个PDF文件
运行脚步可以打开pdf文件
我们就可以看到决策树了
用决策树来分类数据，你需要从树的根部开始看
每个结点都回答了关于属性的
是或否的问题
例如，这个结点的问题是花瓣的宽度
是否小于0.8厘米
如果对于这个样本来说答案为“是”，则往左
否则往右
现在我们用这个树
对我们的一个测试数据作分类
这是我们第一个测试花朵的属性和标签
通过元数据
我们可以看到属性名称
我们知道这朵花是setosa,
那让我们来看看决策树的预测结果
我调整窗口的大小好让大家看的清楚
决策树的第一个问题是
花朵的宽度是否小于0.8厘米
这是第四个属性
答案是“是，所以我们继续往左”
这个点已经是叶子结点了
所以接下来不需要回答其他的问题了
决策树给出了预测结果，即 setosa,
这是正确的答案
注意标签值为0, 即指向了对应种类的花
接下来继续第二条测试数据
这个数据是versicolor的
来看看决策树给出的答案
我们再从树根开始， 这次花瓣的宽度
大于0.8厘米
即这个结点的问题答案为“否”
所以往右走
决策树的下一个问题是
花瓣的宽度是否小于1.75厘米
这是为了缩小范围
答案为“是”，所以接着往左走
下一个问题是花瓣的长度是否小于4.95厘米.
答案为“是”，故接着往左
最后一个问题是花瓣的宽度
是否小于1.65厘米.
答案为“是”, 所以往左
预测的结果就是这是样本属于versicolor,
结果又一次预测正确
你可以把最后一个测试样本当做练习
记住，我们利用树来预测的过程
就是代码运行的过程
现在你已经了解了
决策树的过程
这里还有更多要了解的内容
特别是他们是如何通过样本自动创建一颗树
我将会在接下来的课程中作深入介绍
但是现在，让我们了解一个更加关键的问题
决策树的每一个问题
都是与属性有关
这意味着属性选取得越好
决策树就越准确
下一节课就介绍
怎样使属性取得更好
谢谢观看，下节课再见
本集中文字幕翻译：sisely
Subtitles End: mo.dbxdb.com