| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【西瓜书学习笔记】第4章 决策树 -> 正文阅读 |
|
[人工智能]【西瓜书学习笔记】第4章 决策树 |
1.决策树学习基本算法(递归,分而治之) 输入:训练集D={(x1,y1),(x2,y2),…(xm,ym)}; (1)生成结点node; (5)for a* 的每个值 a‘* do ? 2.从A中选择最优划分属性a*的方法 基本思想:希望决策树的分支结点所含的样本尽可能属于同一类别,即结点的“纯度”越来越高 信息熵:(自信息的期望) ? ?2.1.ID3决策树 ? 一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大,因此可用信息增益来进行决策树的划分属性选择。 原因:在其一状态一致时,信息增益越大表示后一状态熵越小,即后一状态混乱程度越小,该状态的值就越确定。 缺点:信息增益准则对可取数目较多的属性有所偏好,极端例子:将序号做为属性,每个序号仅对应一个样本,纯度最大,但不具有泛化能力 2.2.C4.5决策树 ? ?2.3.CART决策树 ?3.剪枝(pruning)处理:对付过拟合 3.1预剪枝 是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升(整体泛化性能),则停止划分并将当前结点标记为叶结点 问题:存在欠拟合风险,因为有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行得后续划分却有可能导致性能显著提高。 3.2后剪枝 是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。泛化性能不变时,可以保留 优缺点:后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情况下,后剪枝决策时的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但是时间开销会更大。 泛化性能提升判断:性能评估方法,如留出法,交差验证法,自助法 ?4.连续值处理 思路:离散化 C4.5决策树:二分法 做法:(1)将连续属性a的n个不同取值从小到大排列,记为{a1,a2,...,an} (2)以Ta={(ai+a<i+1>)/2,1<=i<=n-1}为候选划分点集合,含n-1个元素 (3)再用离散从A中选择最优划分属性a*的方法选取最优划分点 注意:与离散属性不同的是,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性 5.缺失值处理 在有大量缺失值时,如果简单得放弃不完整样本,仅使用无缺失值的样本进行学习,是对数据信息的极大浪费。 需解决问题:(1)如何在属性值缺失的情况下进行划分属性选择?(C4.5决策树:按没有缺失值的属性划分) (2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?(C4.5决策树:同一个样本以不同的概率划分到所有子结点) 问题:权重是怎么回事啊? C4.5决策树处理方法: ??? ?6.多变量决策树 非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试,即每个非叶结点是一个形如的线性分类器,其中wi为属性ai的权重 eg: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 8:23:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |