简介和 算法

决策树是机器学习最常用的算法之一,它将算法组织成一颗树的形式。其实这就是将平时所说的if-then语句构建成了树的形式。这个决策树主要包括三个部分:内部节点、叶节点和边。内部节点是划分的属性,边代表划分的条件,叶节点表示类别。构建决策树 就是一个递归的选择内部节点,计算划分条件的边,最后到达叶子节点的过程。

伪代码: 输入: 训练数据集D,特征集A,阈值. 输出: 决策树T.

  1. 如果D中所有实例属于同一类,则置T为单结点树,并将作为该结点的类,返回T.
  2. 如果, 则置T为单结点树,并将D中最多的类作为该节点的类,返回T.
  3. 否则,根据相应公式计算A中各个特征对D的(信息增益、信息增益比、基尼指数等),选择最合适的特征.
  4. 如果的得分小于,则置T为单结点树,并将作为该结点的类,返回T.
  5. 否则,根据特征取值,对数据D进行划分,继续递归构造决策树, 返回T.

核心公式

信息熵:

则随机变量X的熵定义为:熵越大,随机变量的不确定性就越大,当时,随机变量的熵最大等于logn,故. 常见的决策树由三种: ID3、C4.5、CART. 其中, , ,

.

modelfeature select树的类型ID3{分类:信息增益}多叉树C4.5{分类:信息增益比}多叉树CART{分类:基尼指数}二叉树CART{回归:平方误差}二叉树

算法十问

1.决策树和条件概率分布的关系?

决策树可以表示成给定条件下类的条件概率分布. 决策树中的每一条路径都对应是划分的一个条件概率分布. 每一个叶子节点都是通过多个条件之后的划分空间,在叶子节点中计算每个类的条件概率,必然会倾向于某一个类,即这个类的概率最大.

2.ID3和C4.5算法可以处理实数特征吗?如果可以应该怎么处理?如果不可以请给出理由?

ID3和C4.5使用划分节点的方法分别是信息增益和信息增益比,从这个公式中我们可以看到 这是处理类别特征的方法,实数特征能够计算信息增益吗?我们可以定义X是实数特征的信息增益是,.其中,则. 对于每一个实数可以使用这种方式进行分割. 除此之外,我们还可以使用特征的分桶,将实数特征映射到有限个桶中,可以直接使用ID3和C4.5算法.

3.既然信息增益可以计算,为什么C4.5还使用信息增益比?

在使用信息增益的时候,如果某个特征有很多取值,使用这个取值多的特征会的大的信息增益,这个问题是出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的机率更大。使用信息增益比就是为了解决偏向于选择取值较多的特征的问题. 使用信息增益比对取值多的特征加上的惩罚,对这个问题进行了校正.

4.基尼指数可以表示数据不确定性,信息熵也可以表示数据的不确定性. 为什么CART使用基尼指数?

信息熵0, logK都是值越大,数据的不确定性越大. 信息熵需要计算对数,计算量大;信息熵是可以处理多个类别,基尼指数就是针对两个类计算的,由于CART树是一个二叉树,每次都是选择yes or no进行划分,从这个角度也是应该选择简单的基尼指数进行计算.

5.决策树怎么剪枝?

一般算法在构造决策树的都是尽可能的细分,直到数据不可划分才会到达叶子节点,停止划分. 因为给训练数据巨大的信任,这种形式形式很容易造成过拟合,为了防止过拟合需要进行决策树剪枝. 一般分为预剪枝和后剪枝,预剪枝是在决策树的构建过程中加入限制,比如控制叶子节点最少的样本个数,提前停止. 后剪枝是在决策树构建完成之后,根据加上正则项的结构风险最小化自下向上进行的剪枝操作. 剪枝的目的就是防止过拟合,是模型在测试数据上变现良好,更加鲁棒.

6.ID3算法,为什么不选择具有最高预测精度的属性特征,而不是使用信息增益?

7.为什么使用贪心和其发生搜索建立决策树,为什么不直接使用暴力搜索建立最优的决策树?

决策树目的是构建一个与训练数据拟合很好,并且复杂度小的决策树. 因为从所有可能的决策树中直接选择最优的决策树是NP完全问题,在使用中一般使用启发式方法学习相对最优的决策树.

8.如果特征很多,决策树中最后没有用到的特征一定是无用吗?

不是无用的,从两个角度考虑,一是特征替代性,如果可以已经使用的特征A和特征B可以提点特征C,特征C可能就没有被使用,但是如果把特征C单独拿出来进行训练,依然有效. 其二,决策树的每一条路径就是计算条件概率的条件,前面的条件如果包含了后面的条件,只是这个条件在这棵树中是无用的,如果把这个条件拿出来也是可以帮助分析数据.

9.决策树的优点?

优点: 决策树模型可读性好,具有描述性,有助于人工分析;效率高,决策树只需要一次性构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。缺点: 对中间值的缺失敏感;可能产生过度匹配的问题,即过拟合。

10.基尼系数存在的问题?

基尼指数偏向于多值属性;当类数较大时,基尼指数求解比较困难;基尼指数倾向于支持在两个分区中生成大小相同的测试。

面试真题

  1. 决策树如何防止过拟合?
  2. 信息增益比相对信息增益有什么好处?
  3. 如果由异常值或者数据分布不均匀,会对决策树有什么影响?
  4. 手动构建CART的回归树的前两个节点,给出公式每一步的公式推到?
  5. 决策树和其他模型相比有什么优点?
  6. 决策树的目标函数是什么?

gis 路径拟合算法_决策树算法十问及经典面试问题相关推荐

  1. 决策树算法十问及经典面试问题

    简介和算法 决策树是机器学习最常用的算法之一,它将算法组织成一颗树的形式.其实这就是将平时所说的if-then语句构建成了树的形式.这个决策树主要包括三个部分:内部节点.叶节点和边.内部节点是划分的属 ...

  2. bootstrap算法_决策树算法之随机森林

    在 CART 分类回归树的基础之上,我们可以很容易的掌握随机森林算法,它们之间的区别在于,CART 决策树较容易过拟合,而随机森林可以在一定程度上解决该问题. 随机森林的主要思想是:使用随机性产生出一 ...

  3. r语言 C4.5 剪枝是用什么算法_决策树算法

    决策树算法,从名字中也可以理解到该算法是以树形结构建立模型的,该算法主要根据分层和分割的方式将预测变量空间划分为一系列简单区域.对某个给定的待预测的观测值,用它所属区域中训练的平均值或众数进行预测.决 ...

  4. 算法设计与分析——十大经典排序算法一(1--5)

    目录 算法设计与分析--十大经典排序算法 第1关:冒泡排序 参考代码 第2关:选择排序 参考代码 第3关:插入排序 参考代码 第4关:希尔排序 参考代码 第5关:归并排序 参考代码 作者有言 一个不知 ...

  5. 算法设计与分析——十大经典排序算法二(6--10)

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com  Time of completion:2023.3.1 Las ...

  6. 二叉树剪枝_数据挖掘算法:决策树算法如何学习及分裂剪枝

    1.决策树模型与学习 决策树(decision tree)算法基于特征属性进行分类,其主要的优点:模型具有可读性,计算量小,分类速度快.决策树算法包括了由Quinlan提出的ID3与C4.5,Brei ...

  7. 机器学习-有监督学习-分类算法:决策树算法【CART树:分类树(基于信息熵;分类依据:信息增益、信息增益率、基尼系数)、回归树(基于均方误差)】【损失函数:叶节点信息熵和】【对特征具有很好的分析能力】

    一.决策树概述 注:生产实践中,不使用决策树,太简单,而是使用决策树的升级版:集成学习算法. 集成学习算法有: Random Forest(随机森林) Extremely Randomized For ...

  8. 数据挖掘算法之决策树算法总结

    机器学习中,决策树是一个预测模型:它代表的是对象属性值与对象值之间的一种映射关系.树中每个节点表示某个对象,每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应具有上述属性值的子对象.决策树仅有单 ...

  9. graphviz 画决策树_决策树算法-实战篇

    本节来介绍如何用决策树解决实际问题. 决策树是常用的机器学习算法之一,决策树模型的决策过程非常类似人类做判断的过程,比较好理解. 决策树可用于很多场景,比如金融风险评估,房屋价格评估,医疗辅助诊断等. ...

最新文章

  1. 1.Redis简介与基本命令
  2. C++学习之路:适合C++新手的练手项目,高薪之路必备项目!
  3. 【BZOJ 1801】【AHOI 2009】中国象棋(递推DP)
  4. 对于初学者,如何轻松学习JavaScript?
  5. htaccess有什么用
  6. tableau货架图制作_举个栗子!Tableau技巧(33):实用漏斗图的三种制作方法
  7. 字节跳动和OPPO:机器翻译等智能时代算法技术如何落地?
  8. SpringBoot系列(4):构建一个多模块SpringBoot项目
  9. 诺基亚e7刷linux,当之无愧的机皇 诺基亚E7-00十大细节解析
  10. Python中的图像处理(第十一章)Python图像锐化及边缘检测(2)
  11. java int转byte出现负数 byte转int的解决
  12. 可展开和收起的LinearLayout
  13. 主板术语详解一(转东转西)
  14. 傅里叶变换公式整理,意义和定义,概念及推导
  15. Unhandled promise rejection
  16. 荟研新材料 毕克BYK024 毕克BYK028 有机硅消泡剂 丙烯酸酯 聚氨酯 水性印刷油墨 罩光清漆 水性UV体系消泡剂
  17. C语言:在文件的指定位置实现局部修改,而无需重写文件的其他部分
  18. 无界键鼠(MouseWithoutBorders)的安装与无法连接的解决方案
  19. php仿站教程网,我想仿站,不知道选择哪个cms好?
  20. 传奇网关-微信绑定和充值

热门文章

  1. win11怎么使用ie浏览器?(ie兼容模式)(win11还是支持不好啊)
  2. arm ffmpeg报错:Invalid data found when processing input(没解决)(在ubuntu上能正常运行)(重新交叉编译后问题解决)
  3. opencv在pycharm上没有函数提示?(需要安装opencv-contrib-python)
  4. 在华为笔记本 MateBook 13 (MX250)上配置yolo-v3_tensorflow CUDA 所遇到的一些坑(cuda无法识别显卡)
  5. tf.name_scope与tf.variable_scope
  6. 迅为linux下串口,迅为IMX6ULL开发板Linux RS232/485驱动实验(上)
  7. 对象属性结构赋值_(六)面向对象-下
  8. Java标签Label,如何不使用continue和break跳出循环
  9. 前后端分离开发,日志应该如何进行记录,在出现问题的时候,方便定位问题
  10. i12单双耳切换_多种形态,切换惬意,雷柏i100蓝牙TWS耳机,支持单耳/双耳使用...