写在前面的话
进入科科研室之后在组长的带领下也学了快有一年的R语言了,很快就要去找实习进行面试了。而面试难免会被问及很多的经典算法原理,从学习到现在,还从来没有将某一个算法完完整整的按照自己的理解去讲解出来,也从来没有进行过系统性的总结。总之就是学的时候没有构建起一种知识体系。但是为了能在将来的面试中不被问的一句也说不出来,因此,咸鱼也决定翻翻身。从现在开始每周一个算法讲解,在讲的同时,让自己更加了解这个算法,同时明白自己的不足之处。也希望与大家共同进步,不足之处也希望大家能够提出来共勉。好了,废话不多说,接下来进入正题。
第一个算法我们来回顾决策树,那么多算法为什么先要看决策树呢?emmmmm....因为这些个算法中我了解的比较多的其实是随机森林,但是呢还不能先讲随机森林。因为随机森林是建立在多个决策树上的。因此呀,只能委屈一下先看决策树咯。
初识决策树
决策树听起来就很好理解:方便大家做决策的一种树形结构,但是呢,这个树跟我们看到的树是不一样的。决策树的根在最上面(一棵倒着长的树,咦~想想就有点吓人),而且它是自上而下生成的,最下端为树的叶。可能会使你联想到二叉树,没错!它跟二叉树长的确实有几分相似,但是呢又不尽相同,决策树的每个节点可以分很多个叉(当然也可以只有两个叉),但是二叉树只能两个叉。当然,前边讲的这一堆都不是重点,下边才是重点,敲黑板。
决策树的构造
决策树的构造也比较简单,现在大家就想象一棵倒着的树。然后呢,树的根那写着多个选择,比如说我们有三个选择在这里:晴天、多云和雨天。然后每个节点通过设定的阈值(这个东东在数据分析中会经常用到,再在这就不细讲了,在这就当它是某个条件吧)再细分为更多的节点,然后再继续往下细分,分到不能分的时候的节点就成为叶子结点,一个叶节点就代表一个决策。这里上一张图可能更好的理解:
(注:图片盗自数据挖