什么是决策树

决策树(decision tree)是一种基本的分类与回归方法。决策树是用样本的属性作为结点,用属性的取值作为分支的树结构。

决策树的根结点是所有样本中信息量最大的属性。树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶结点是样本的类别值。决策树是一种知识表示形式,它是对所有样本数据的高度概括决策树能准确地识别所有样本的类别,也能有效地识别新样本的类别。

特征选择

ID 年龄 有工作 有自己的房子 信贷情况 类别(是否个给贷款)
1 青年 一般
2 青年
3 青年
4 青年 一般
5 青年 一般
6 中年 一般
7 中年
8 中年
9 中年 非常好
10 中年 非常好
11 老年 非常好
12 老年
13 老年
14 老年 非常好
15 老年 一般

信息熵(entropy)是用来衡量一个随机变量出现的期望值。如果信息的不确定性越大,熵的值也就越大,出现的各种情况也就越多。

信息增益(information gain)是指信息划分前后的熵的变化,也就是说由于使用这个属性分割样例而导致的期望熵降低。也就是说,信息增益就是原有信息熵与属性划分后信息熵(需要对划分后的信息熵取期望值)的差值,具体计算法如下:

ID3算法

决策树算法ID3的基本思想:

首先找出最有判别力的属性,把样例分成多个子集,每个子集又选择最有判别力的属性进行划分,一直进行到所有子集仅包含同一类型的数据为止。最后得到一棵决策树。

J.R.Quinlan的工作主要是引进了信息论中的信息增益,他将其称为信息增益(information gain),作为属性判别能力的度量,设计了构造决策树的递归算法。

ID3算法:

1.对当前例子集合,计算各属性的信息增益;
2.选择信息增益最大的属性Ak;
3.把在Ak处取值相同的例子归于同一子集,Ak取几个值就得几个子集;
4.对既含正例又含反例的子集,递归调用建树算法;
5.若子集仅含正例或反例,对应分枝标上P或N,返回调用处。

C4.5算法

C4.5算法是ID3算法的一种改进。

改进

  • 用信息增益率来选择属性,克服了用信息增益选择属性偏向选择多值属性的不足
  • 在构造树的过程中进行剪枝
  • 对连续属性进行离散化
  • 能够对不完整的数据进行处理

信息增益率

设样本集S按离散属性F的c个不同的取值划分为c个子集,则这c个子集的信息熵为:

信息增益率是信息增益与信息熵的比例,如下:

算法工程师面试备战笔记12_决策树相关推荐

  1. 算法工程师面试备战笔记2_一个完整机器学习项目的流程

    1 抽象成数学问题 明确问题是进行机器学习的第一步.机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的. 这里的抽象成数学问题,指的我们明确我们可以获得什么样的数据,目标是一个分 ...

  2. 算法工程师面试备战笔记11_朴素贝叶斯分类某个类别概率为0怎么办

    题目 A1,A2,A3是三个特征,Y是分类结果.A1,A2,A3和Y 均只有0和1两种情况. A1 A2 A3 Y 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1. ...

  3. 算法工程师面试备战笔记8_猜测这种划分最可能是什么聚类算法的结果

    以下是各个算法的比较

  4. 算法工程师面试备战笔记7_数据清洗与特征处理

    数据清洗 清洗标注数据,主要是数据采样和样本过滤 数据采样 数据采样,例如对于分类问题:选取正例,负例.对于回归问题,需要采集数据.对于采样得到的样本,根据需要,需要设定样本权重.当模型不能使用全部的 ...

  5. 算法工程师面试备战笔记4_余弦相似与欧氏距离有什么区别和联系

    1)区别 假设 2人对三部电影的评分分别是 A = [3, 3, 3] 和 B = [5, 5, 5] 那么2人的欧式距离是 根号12 = 3.46, A.B的余弦相似度是1(方向完全一致). 余弦值 ...

  6. 算法工程师面试备战笔记1_如何处理特征向量的缺失值

    如何处理特征向量的缺失值 1) 缺失值较多 缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的噪声,对结果造成不良影响. 2) 缺失值较少 缺失值较少,其余的特征缺失值都在10%以内,我们可以采 ...

  7. 算法工程师面试备战笔记10_精确率(precision)和召回率(recall)

    混淆矩阵 True Positive(真正, TP):将正类预测为正类数. True Negative(真负 , TN):将负类预测为负类数. False Positive(假正, FP):将负类预测 ...

  8. 算法工程师面试备战笔记9_支持向量机(SVM)中的支持向量是什么意思

    题目 我们在下面的二元标签的数据集上训练一个线性SVM模型 这个模型中的支持向量是哪些? A. (−1,1),(1,1),(2,1) B. (−1,1),(−1,−1),(2,1) C. (0,1), ...

  9. 算法工程师面试备战笔记5_下面哪个不属于数据的属性类别

    A 标称 B 序数 C 区间 D 相异 关于数据的属性类别的介绍 数据集由数据对象组成,一个数据对象代表一个实体.数据对象又称样本.实例.数据点或对象.属性(attribute)是一个数据字段,表示数 ...

最新文章

  1. R语言ggplot2可视化:为可视化图像添加多行标题(multi line title)并将多行标题居中对齐(center align)
  2. 叔叔我要可乐,要冰冻的
  3. Python for else 的使用(银行账号的登录)
  4. 笔记-信息系统安全管理-信息系统的安全属性
  5. python 百度百科 爬虫_爬虫爬取百度百科数据
  6. 让php4和php5共存的方法
  7. QWidget::size()和QResizeEvent::size()不一定相同!
  8. java web不用框架_初学javaweb,远离各自框架
  9. AR.js专题-多Renderer支持
  10. HBase超级详细总结
  11. 【MM系列】SAP 通过原材料找到成品的函数
  12. 国产规则引擎urule,产品化方案的扛把子
  13. (转载)基于Overfeat的图片分类、定位、检测
  14. 什么是数据资产管理?5个角度帮你参透数据资产管理
  15. 独立开发变现周刊(第66期): 如何把一个短链接生成工具变成一个可持续盈利的产品?...
  16. catalog英文翻译_Catalog.是什么意思
  17. Golang 调用http 文件上传接口 进行上传文件
  18. 尚驰SHANGCHI汽车美容店尚驰洗车店兰州洗美行业中国的工匠力量
  19. 2022-2000-1978:世纪前后22年
  20. dumpsys用法简介

热门文章

  1. Animoca Brands 旗下子公司 GAMEE 将于 4 月 2 日启动公募
  2. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌5.04%
  3. ChaiNext:比特币再度考验5W关口
  4. 井电双控智能缴费管理系统、水井管理、报警管理、费用管理、实时查询、信息配置、模块配置、智能报表、水表、抄表、井电、电表、用水分析、水电、灌溉用水、绿化用水、农业用水、智慧水电、水利
  5. 【git】搭建git服务器
  6. 深入学习webpack(四)
  7. Java排序算法之希尔(Shell)排序
  8. git创建仓库,并提交代码(第一次创建并提交)(转)
  9. ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
  10. 项目添加GPUImage