决策树

决策树在集成学习中的地位

整个集成学习会按照是否有线程的小的模型(g)分为两种。如果我们有g的话我们就会用blending。如果想一边学习g一边融合模型就会用到Bagging或AdaBoost。

①在biending中如果是用平均组合的话可以用平均投票的方式,如果每个g所占的权重不同的时候就可以用线性模型组合这些g(此时这些g可以当做是原始资料的一种特征转换)。如果我们的投票活动与具体的情况有关那么g在这里任然可以当做是特征转换,而且在得到g之后会进行非线性的转换。

②在边学边融合的模型中如果是将所得模型平均的组合可以使用Bagging,其中Bagging的核心是BootStrap。当我们有一堆比较弱的g时我们需要用Adaboosting演算法将g线性融合进而得到非常强大的g。而在边学边融合的而且得到的g需要分情况来融合时我们就用到了决策树模型。

决策树的两种角度

路径角度

从根节点出发经过一些条件的判断和选择最终到达一个子节点这种角度就是决策树的路径角度,每一条路径最后会到达一个子节点。其中这些子节点就好比是我们要融合的g只不过g在这里可能是一些常量。不同的分支选择就是我们提到的不同条件。所以就会得到上图中的模型。

递归角度

递归角度所讲的就是,从根节点出发进行分支其中每一个分支都会连接一颗子树,而每一颗子树也都会有自己的根节点从这些根节点出发又会有不同的分支些分支又连接了不同的子树,依次类推下去。所以每当选中一个分支时一定会对应一颗子树,也就形成了上图中所展现的递归模型了。

决策树的优缺点

优点:比较符合人类决策的过程,学习起来比较简单。在预测和训练的时候都比较高效。

缺点:缺乏理论上的保证,在设计的时候会用到大量的从业人员的巧思在里面。

CA&T演算法

基本的决策树演算法

一般决策树会分为这几个步骤:

①要将现有的资料怎么分支。

②到底要将手上的资料分为几支。

③在分开的资料上各自学到一个小的模型。

④将小的模型融合成为大的模型。

当然很关键的一步就是要有一个终点什么时候停下来,我们规定当能够返回g的时候(也就是叶子节点的时候停下来)。

Classification and Reression Tree(CA&T)

这个树的特点:

①这棵树是一颗二叉树

②它的基本的叶子节点是常数。

如果是二元分类的话那么我们就认为最好的预测就是表现相同的最多的那个。如果是线性回归并且使用平方错误作为错误衡量的时候最好的预测就是当前资料的平均值。

Cart与纯度

在进行分支(二分)的时候我们通常使用decision stump(根据资料的其中一个特点来切分资料)。至于它切的怎么样或者是如何切分资料才是最好的,我们用纯度来横量。总的来说是当切分完资料之后每一部分的资料的纯度越高那么我们就说这种分支的方式就越好。所以我们通常就是用decision stump的方式来分割用纯度来作为衡量最后选择最好的那个decision stump。

不纯度的衡量

不纯度是一种错误衡量的方式,越不纯说明分割资料的误差就越大。

在平方错误的回归问题中不纯度就是每一个资料点的表现值与平均表现值的方差之和。而在分类问题中不纯度往往会是与最多的那种资料不同的资料数目之和的平均值。但是这种判断方式不能够将所有的资料都考虑进来,实务上我们会使用每种资料所占的比例的平方和来作为纯度的衡量标准,同时这种衡量标准也被称为是Gini系数。

CA&T的终点

①当当前资料上资料的表现都相同的时候也就是不纯度为0的时候我们就会停下来,因为再分割下去没有任何意义。

②当所有的资料点都相同时候(比如说只有一个点的时候),我们做没法做descisionstump也就没办法分割。

这种被迫停下来的树被称为完全长成树,它的叶子节点是常量,分支的时候是二分的分支的衡量就是让资料越纯越好。

决策树的正则化与其它特质

决策树的正则化

在完全长成树中如果起始值输入的值不同那么就会出现损失函数(Ein)的值为0的情况。但是对于我们来说Ein为0并不是一件好的事情因为此时的模型复杂度会很高而且它容易出现过拟合的危险。所以我们要对它进行正则化。

直观的来看切得刀数越多的树在每一个节点上的资料会越来越少,所以这棵树的树叶越多的也就分割的颗粒越少同时也伴随着模型复杂度的提高。所以我们想要的是叶子节点不多但是表现还不错的一棵树。这样使用减少叶子的做法(决策树剪枝)可能达到正则化的效果。

我们可能的一种做法就是列出所有可能的树然后选择一棵综合素质最好的树(Ein(G)+λΩ(G)最低)也就是在正则化的条件下最好的树,但是这样太费力气。实务上我们通常是从一个完全长成的树开始,然后分别拿掉每一片叶子看看拿掉哪一片叶子的时候这棵树表现的最好,这样接下来再以相同的方式拿掉第二片叶子以此类推。这样我们的剪枝过程就比以前轻松许多,以前是列出了所有的树在所有的树中做选择,而现在是列出了一些高品质的树在高品质的树中做选择。

至于如何选择参数λ我们可以使用validation。

从数字特性到类别特性

一般情况我们可能会遇到数字上的特性我们在做分支的时候就是去做decisionstump不如在某个维度上大于某个阈值的走左边,小于某个阈值的走右边。而在非数字特征的问题上我们没有阈值的概念所以我们的分支依靠的是决策子集合,我们要从所有的子集合的分类中选择一个最好的分配方式。

决策树的代理特性

决策树的核心就是切割而且切割通常是依赖于一个物体的特性。比如说大于50公斤的走左边,小于等于50公斤的走右边。我们是依靠体重这个维度来进行分割的,要是现在来了一个没有量过体重的人怎么办(假设这个人的体重无法测量)。我们就可以找一个替代的特征,比如说身高在155cm以上的人通常都会大于50公斤,这时我们就可以拿着身高来代替体重的特征了。

总结决策树会有以下的特性:

①它的决策过程与人类做决策的过程非常类似。

②能够很轻易的处理多元分类问题。

③能够处理类别特征的问题。

④能够进行特征替代。

⑤能够做出非线性的边界。

机器学习之决策树(机器学习技法)相关推荐

  1. Scikit-Learn 机器学习笔记 -- 决策树

    Scikit-Learn 机器学习笔记 – 决策树 参考文档: handson-ml import numpy as np# 加载鸢尾花数据集 def load_dataset():from skle ...

  2. 机器学习实战-决策树-22

    机器学习实战-决策树-叶子分类 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplo ...

  3. 利用计算机语言实现ID3算法,机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf...

    机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf 还剩 23页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保 ...

  4. 【火炉炼AI】机器学习006-用决策树回归器构建房价评估模型

    [火炉炼AI]机器学习006-用决策树回归器构建房价评估模型 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplo ...

  5. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...

    一.决策树简介 1.1 什么是决策树? 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树. ...

  6. 机器学习实战 —— 决策树(完整代码)

    声明: 此笔记是学习<机器学习实战> -- Peter Harrington 上的实例并结合西瓜书上的理论知识来完成,使用Python3 ,会与书上一些地方不一样. 机器学习实战-- 决策 ...

  7. 【机器学习】决策树(Decision Tree)

    [机器学习]k近邻算法(KNN) [机器学习]决策树(Decision Tree) [机器学习]朴素贝叶斯(Naive Bayes) 一.概述 决策树(Decision Tree)是有监督学习中的一种 ...

  8. 机器学习中决策树的随机森林_决策树和随机森林在机器学习中的使用

    机器学习中决策树的随机森林 机器学习 (Machine Learning) Machine learning is an application of artificial intelligence ...

  9. 周志华机器学习:决策树

    决策树 文章目录 决策树 参考 基本流程 划分选择 信息增益 决策树的生成--ID3,及其问题 增益率 决策树生成 --C4.5,及其问题 剪枝处理 预剪枝和后剪枝 统计学习方法中的剪枝 CART算法 ...

  10. 机器学习之决策树原理

    机器学习之决策树原理 1 决策树简介 2 数学知识 ① 信息熵 ② 条件熵 ③ 信息增益 ④ 信息增益比(信息增益率) ⑤ 基尼指数(基尼系数) 3 决策树的构建过程 4 三种决策树算法 ① ID3 ...

最新文章

  1. 操作系统学习笔记 第三章:处理机调度与死锁(王道考研)
  2. Python设计模式-代理模式
  3. 还原sql server数据库时,无法获得对数据库的独占访问权
  4. [原创]Java中字符串、数组、集合及JSONArray的长度属性
  5. pe修改rpc服务器不可用,ABBYY FineReader 12出现“RPC服务不可用”怎么办
  6. html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪
  7. Mysql索引介绍及常见索引的区别
  8. hdu 3105 Fred's Lotto Tickets (水)
  9. PTA编程总结3:抓老鼠
  10. oracle替换指定字符串字符_实例:替换方框内字符串内容
  11. 利用python进行数据分析—五、pandas入门
  12. 拓端tecdat|R语言结构方程模型SEM分析心理学和营销研究数据路径图可视化
  13. 喇叭正反相位测试音频_音频功放失真的四大要点及改善方法
  14. 【图解线性代数】第二章——向量几何的基本意义【思维导图】
  15. Geek卸载,Windows电脑再无卡顿
  16. 计算机硬件关系密切,与计算机硬件关系最密切的软件是.
  17. 计算机课堂小游戏活跃气氛,活跃气氛课堂互动小游戏大全
  18. Kotlin技术 - 委托和代理
  19. 华为云跨云迁移工具案例实践:阿里云迁移到华为云
  20. 数据分析——人力资源

热门文章

  1. 联想台式机无法从U盘启动的解决方案
  2. Tensorflow使用object_detetcion安装教程
  3. python+django+layUI+MySQL+TSC打印机搭建4G设备管理平台项目(二)——过程中的难点记录
  4. 企业微信聊天记录如何备份?企业微信如何导出聊天记录?
  5. 如何在Dev-c++中打c语音的代码
  6. 关于几何学发展的三阶段
  7. vue3+echart5 遇到的报错:Cannot read properties of undefined (reading ‘type‘)
  8. 浙江大学计算机学院 陈曦,陈曦-计算机与通信工程学院
  9. CHAP MS-CHAPv2 EAP
  10. 别人的【计算机视觉算法岗面经】“吐血”整理:2019秋招面经