| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 记录篇:【百面机器学习】第三章.经典算法---决策树 -> 正文阅读 |
|
[人工智能]记录篇:【百面机器学习】第三章.经典算法---决策树 |
问题1 决策树有哪些常用的启发函数?
常用的决策树算法有
ID3
、
C4.5
、
CART
,它们构建树所使用的启发式函数各是什么?除了构建准则之外,它们之间的区别与联系是什么?
|
|
|
■ ID3——
最大信息增益
■ C4.5——
最大信息增益比
■ CART——
最大基尼指数(
Gini
)
对比与差异:
1.C4.5
实际上是对
ID3
进行优化,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3
出现过拟合的特性,提升决策树的泛化能力。
2.从样本类型的角度,ID3只能处理离散型变量,而C4.5和CART都可以处理连续型变量
3.从应用角度,ID3和C4.5只能用于分类任务,而CART(Classification and Regression Tree,分类回归树)从名字就可以看出其不仅可以用于分类,也可以应用于回归任务(回归树使用最小平方误差准则)。
4.从实现细节、优化过程等角度,这三种决策树还有一些不同。比如,ID3对样本特征缺失值比较敏感,而C4.5和CART可以对缺失值进行不同方式的处理;ID3和C4.5可以在每个结点上产生出多叉分支,且每个特征在层级之间不会复用,而CART每个结点只会产生两个分支,因此最后会形成一颗二叉树,且每个特征可以被重复使用;
5.ID3和C4.5通过剪枝来权衡树的准确性与泛化能力,而CART直接利用全部数据发现所有可能的树结构进行对比。
|
|
|
问题2 如何对决策树进行剪枝?
预剪枝,即在生成决策树的过程中提前停止树的增长。而后剪枝,是在已生成的过拟合决策树上进行剪枝,得到简化版的剪枝决策树。
■
预剪枝
预剪枝的核心思想是在树中结点进行扩展之前,先计算当前的划分是否能带来模型泛化能力的提升,如果不能,则不再继续生长子树。此时可能存在不同类别的样本同时存于结点中,按照多数投票的原则判断该结点所属类别。预剪枝对于何时停止决策树的生长有以下几种方法:
(
1
)当树到达一定深度的时候,停止树的生长。
(
2
)当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
(
3
)计算每次分裂对测试集的准确度提升,当小于某个阈值的时候,不再继续扩展。
预剪枝具有思想直接、算法简单、效率高等特点,适合解决大规模问题。但如何准确地估计何时停止树的生长(即上述方法中的深度或阈值),针对不同问题会有很大差别,需要一定经验判断。且预剪枝存在一定局限性,有欠拟合的风险,虽然当前的划分会导致测试集准确率降低,但在之后的划分中,准确率可能会有显著上升。
■
后剪枝
后剪枝的核心思想是让算法生成一棵完全生长的决策树,然后从最底层向上计算是否剪枝。剪枝过程将子树删除,用一个叶子结点替代,该结点的类别同样按照多数投票的原则进行判断。同样地,后剪枝也可以通过在测试集上的准确率进行判断,如果剪枝过后准确率有所提升,则进行剪枝。相比于预剪枝,后剪枝方法通常可以得到泛化能力更强的决策树,但时间开销会更大。
常见的后剪枝方法包括错误率降低剪枝(
Reduced Error Pruning
,
REP
)、悲观剪(Pessimistic Error Pruning
,
PEP
)、代价复杂度剪枝(
Cost Complexity Pruning,
CCP
)、最小误差剪枝(
Minimum Error Pruning
,
MEP
)、
CVP
(
Critical Value Pruning)、
OPP
(
Optimal Pruning
)等方法,这些剪枝方法各有利弊.
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 2:29:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |