以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏
文章目录
- 猫分类例子
- 学习过程
学习算法非常强大的原因之一,是其应用了决策树和树集合,尽管决策树取得了巨大的成功,但是在学术界却没有太多的研究,但它其实是你工具箱中非常有用的工具。让我们用猫分类示例作为例子。
猫分类例子
你打算做一个分类器,从而判断图片中的动物是否是猫。
以下列举出了十种动物,每个动物按照三个特征:耳朵形状,脸的形状,是否有胡须被标记为特征,然后分别有十个标签,以上的这些全部都是二元分布,即是或不是这两种答案:
什么是决策树?
以下是一颗决策树,让我来进行一些名词解释:最上面的节点叫做根节点;所有的那些椭圆形的节点叫做决策节点,因为每个节点决定了你会往左或者是往右走;而最底部的节点被称为叶节点 。
当然决策树的种类并非只有一种,有些会在训练集和cv集上表现地比较好,有些效果就差些。决策树学习算法的工作大致原理是,希望在训练集上找到一个工作良好的树,然后能将其泛化到cv和test set上。
那么决策树是如何构建起来的呢,让我们看看它的学习过程。
学习过程
我们先用比较抽象的方法来考虑这些问题。让你能有个大致的概念,在之后的博客在进行具体细节了解。
第一步,需要确定根节点是什么。在以下的例子中,我们将根节点选为Ear Shape,这样,我们就将其中的五种动物分到了左边。
第二步,由于我们还没能将猫和狗完全区分开来,因此我们需要一个二级节点,用新的特征继续去区分动物。这里选择的是脸的形状。
这样,猫和狗就被区分开来了,从而可以直接划定叶节点。
在右边的这个子树,我们进行同样的操作。
这样就构建好了决策树。
在以上的构建过程中,我们可以发现,我们需要做以下几个关键决定:
- 选择哪个节点作为特征节点,从而可以最大化提高纯度。例如,如果有DNA这个特征那就最好了,直接百分百区分。但很少能有这种好事。在以后的博客中,我们将提到如何最小化杂质。
- 第二个你需要考虑的是,什么时候停止分裂?当然,当你遇到上例这种100%正确的可以停止分裂。此外的情况是,当分裂一个节点会导致你的决策树超过你设定的最大深度,就停止。一般来说,根节点的深度为0,往后每下一层,深度加一,这个也叫做跳数(hops)。保持深度不要太大是为了防止你的树过于臃肿,从而导致过拟合的发生。另一种可能是,分裂到该阶段,纯度达到了你设定的阈值,就是性能到这里就够了。最后一种可能是,当分裂到这个阶段,例子过少,也可以停止。
相信你和我的感觉一样,怎么决策树要考虑的情况这么多,没关系,我们在之后的博客之中慢慢了解这些内容。
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。