好久没有写推文里,利用写推文的机会对曾经学过的内容进行一次复习
一.前置知识
1.1决策树
STEP1:特征选择:筛选出跟分类结果相关性较高的特征
选择准则:信息增益公式
对该公式的理解:
熵:表示随机变量的不确定性
信息熵与条件熵:
信息熵:情况越混乱,信息熵就越大,反之则越小;举个例子:我们可以说太阳从东边出来,这件事情因为是一定会发生的,故其信息熵可以看作为0;但是当有一天,突然在有人发现太阳打西边出来,并且这件事情被天文学家所验证的时候,大家就都陷入了对此事件的热论之中;因此我们可以说此时的情况是混乱的,信息熵是很大的
条件熵:表示在一个条件下随机变量的不确定性,,这个很好理解,可以认为是在给定一个条件之后,随机变量的不确定性。比如在我是个穷逼,班花和我恋爱的不确定程度就很大,同时在我是个富人的条件下,班花和我恋爱的不确定度就要小一些
信息增益:可以简单理解为信息熵减去条件熵;同时也是在得知一个条件以后,信息熵减少的程度,从而当一个信息的信息增益越大,我们就说该信息越重要,因而我们可以利用该公式来选择出更为重要的特征。
STEP2:决策树生成
关于决策树:一种树形的结构,一般由根节点、父节点、子节点、叶子节点组成
关于节点:父节点和子节点是相对的,子节点可以由父节点分裂而来,而子节点还能作为新的父节点继续分裂;根节点是没有父节点,即初始分裂节点,叶子节点是没有子节点的节点,为终节点。
每一个分支代表着一个判断,每个叶子节点代表一种结果。
个人理解:从第一个节点开始,选取所有特征中信息增益最大的那一个,然后下一个节点由同样的方式计算,直到信息增益很少或者节点已经太多,例如:在选择购买一件衣服时候,小明可能最看重的是衣服的颜色,那么对于小明来说,衣服的颜色就是最重要的,信息增益最大的特征;而在调好了符合自己心意的颜色的衣服之后,小明认为第二重要的是衣服的舒适度,那么下一个节点则是衣服的舒适程度,而最后小明挑好的那件衣服即为叶子节点
STEP3:决策树剪枝
目的:对抗"过拟合”
过拟合:主要表现是在训练集上表现得很好,但是在训练集上表现得一塌糊涂,这说明的是训练出来的模型已经完全成为了训练集的形状,不对一般的情况起作用
这个图片中黑色的线为正常的拟合模型,而绿色的线则是过拟合的模型的情况
1.2用到的算法
1.2.1 ID3算法
利用信息增益来选择特征
1.2.2 C4.5算法
不是直接使用信息增益,而是引入“信息增益比”指标作为特征的选择依据。
1.2.3 CART算法
即可以用于分类,也可以用于回归问题。CART 算法使用了基尼系数取代了信息熵模型
注:对于算法问题尚未理解透彻,待补。。。
1.3优点与缺点
优点:
1.决策树易于理解和解释,可以可视化分析,容易提取出规则;
2.可以同时处理标称型和数值型数据;
3.比较适合处理有缺失属性的样本;
4.能够处理不相关的特征;
5.测试数据集时,运行速度比较快;
6.在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
缺点:
容易发生过拟合(随机森林可以很大程度上减少过拟合);
容易忽略数据集中属性的相互关联;
ID3算法计算信息增益时结果偏向数值比较多的特征。
二.随机森林
2.1概念认知
随机森林是由很多决策树构成的,不同决策树之间没有关联。
当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。
2.2随机森林的构造步骤
2.2.1随机抽样,训练决策树
当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。
2.2.2随机选取属性,作节点分裂属性
当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。
2.2.3重复2,直到不能再分裂
决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。
2.2.4建立大量决策树,形成森林
按照步骤1~3建立大量的决策树,这样就构成了随机森林了。