IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 决策树学习笔记 -> 正文阅读

[数据结构与算法]决策树学习笔记

一、概念

在树的结点处按照属性的不同条件对样本进行划分。

二、决策树的生成

1. 特征的选择:局部最优

选择最优属性的最优划分。

度量结点的不确定程度:熵、基尼系数、分类错误率。

结点越不纯,结点处类分布越平衡,值越大。

E n t r o p y ( t ) = ? ∑ k = 0 K p ( k ∣ t ) l o g ( p ( k ∣ t ) ) Entropy(t) = -\sum_{k=0}^K p(k|t)log(p(k|t)) Entropy(t)=?k=0K?p(kt)log(p(kt))

G i n i ( t ) = 1 ? ∑ k = 0 K [ p ( k ∣ t ) ] 2 Gini(t) = 1-\sum_{k=0}^K[p(k|t)]^2 Gini(t)=1?k=0K?[p(kt)]2

C l a s s i f i c a t i o n E r r o r = 1 ? m a x [ p ( k ∣ t ) ] Classification Error = 1 - max[p(k|t)] ClassificationError=1?max[p(kt)]

比较分裂前后不纯程度的差别

信息增益(ID3):分裂前后结点熵的差

Δ = I ( p a r e n t ) ? I ( c h i l d r e n ) \Delta = I(parent) - I(children) Δ=I(parent)?I(children)

I ( c h i l d r e n ) = ∑ j = 0 V N ( v j ) N H ( v j ) I(children) = \sum_{j=0}^V \frac{N(v_j)}{N}H(v_j) I(children)=j=0V?NN(vj?)?H(vj?)

v v v是分裂后的结点

信息增益率(C4.5):考虑分裂后得到的结点数量。不希望输出的结点过多,会过拟合。
G a i n r a t i o = Δ s p l i t I n f o Gain ratio=\frac{\Delta}{splitInfo} Gainratio=splitInfoΔ?
s p l i t I n f o = ? ∑ i = 1 K p ( v i ) l o g p ( v i ) splitInfo = -\sum_{i=1}^Kp(v_i)logp(v_i) splitInfo=?i=1K?p(vi?)logp(vi?)

对分类型特征,直接按照特征类别进行划分,计算划分前后的信息增益,选择信息增益最大的最优特征

对连续型特征,选择适当的划分点

  • 方法一:采用穷举法,遍历 N N N个样本的特征值,每个特征值做一次划分点,统计小于它的样本和大于它的样本。时间复杂度 O ( N 2 ) O(N^2) O(N2)

  • 方法二:首先对特征值进行排序,然后选择两个特征值之间的中间
    在这里插入图片描述

2. 何时停止分裂

  • 结点处所有样本同属一类。
  • 样本熵小于某个阈值(基本属于同一类)
  • 结点处所有样本特征值相同(无更多特征可以选择):返回比例最高的类
  • 信息增益小于某个阈值(提前剪枝):返回父节点中比例最高的类
  • 结点处样本数小于某个阈值:返回父节点中比例最高的类

3. 决策树的剪枝

剪枝时考虑整体的损失函数

∣ T ∣ |T| T表示叶节点的数量

C α ( T ) = C ( T ) + α ∣ T ∣ C_\alpha(T) =C(T)+\alpha|T| Cα?(T)=C(T)+αT

剪枝算法:

递归地从叶节点向上回缩,若回缩后树的损失函数值小于等于回缩前,则进行剪枝

4.CART(Classification and Regression Tree)的生成与剪枝

回归树:平方误差最小化

对每个切分点,划分两个区域

在这里插入图片描述
损失函数有
在这里插入图片描述
其中
在这里插入图片描述
遍历所有特征,找到最优特征 j j j和对应的切分点 s s s

分类树:按照基尼系数选择最优特征。

CART要生成尽量大的树,结束的标准是结点处样本数小于某个阈值 / Gini系数小于某个阈值。

CART剪枝

CART剪枝算法确定了 α \alpha α和最优子树。

原理:当 α \alpha α从小增大, α 0 \alpha_0 α0?< α 1 \alpha_1 α1?< α 2 \alpha_2 α2?<…,产生的一系列区间[ α i \alpha_i αi?, α i + 1 \alpha_{i+1} αi+1?),每个区间内都对应一个最优子树。最优子树序列 T 0 T_0 T0?, T 1 T_1 T1?, T 2 T_2 T2?…是嵌套的。

某个结点剪枝前后损失相同,即

C C C( T 0 T_0 T0?)+ α \alpha α = C C C( T 1 T_1 T1?)+ α \alpha α| T 1 T_1 T1?|

α \alpha α = C ( T 0 ) ? C ( T 1 ) ∣ T 1 ∣ ? 1 \frac{C(T_0)-C(T_1)}{|T_1|-1} T1??1C(T0?)?C(T1?)?

对每一个结点计算 C ( T 0 ) ? C ( T 1 ) ∣ T 1 ∣ ? 1 \frac{C(T_0)-C(T_1)}{|T_1|-1} T1??1C(T0?)?C(T1?)?并设为 α 1 \alpha_1 α1?,则剪枝后的T_1即为[ α 1 \alpha_1 α1?, α 2 \alpha_2 α2?)中的最优子树。

利用验证集在 T 0 T_0 T0?, T 1 T_1 T1?, T 2 T_2 T2?…中寻找最优决策树(平方误差或基尼指数小的), T k T_k Tk?确定,对应的 α k \alpha_k αk?也确定了。

三、 决策树的性质

  • 不需要先验假设。
  • 对未知样本分类速度快,最多为树的深度。
  • 解释性强,可以得到各个特征的重要程度。
  • 对样本噪声的抗干扰性强。
  • 对冗余特征的抗干扰性强,但会受到不相干特征的影响。
  • 当样本小特征多时,易添加一些欺骗性结点。特别是当模型拓展到一定深度时。
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:29:50  更:2021-07-27 16:32:18 
 
开发: 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/25 17:40:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码