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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 从决策树到xgboost(未完) -> 正文阅读

[人工智能]从决策树到xgboost(未完)

1 决策树

1.1决策树定义

决策树的基本组成:决策节点、分支、叶子。
在这里插入图片描述

决策树表示给定特征条件下的概率分布。
条件概率分布定义在特征空间的一个划分上。将特征空间划分为互不相交的单元。并在每个单元上定义一个类的概率分布,就构成了一个条件概率分布。
决策树的一条路径对应于划分中的一个单元。

决策树的本质是在特征空间上的切割。
在这里插入图片描述

1.2信息增益

:设X是一个取有限个值的离散随机变量,其概率分布为: P ( X = x i ) = p i , i = 1 , 2 , 3... n P(X=x_i)=p_i,i=1,2,3...n P(X=xi?)=pi?,i=1,2,3...n
那么X的熵为: H ( X ) = ? ∑ i = 1 n p i l o g p i H(X)=-\sum_{i=1}^np_ilogp_i H(X)=?i=1n?pi?logpi?
对数以2为底或者以e为底,这时熵的单位称为比特或者纳特。熵只依赖于X的分布,而与X的具体取值无关。
熵的理论解释:熵越大,随机变量的不确定性越大。 0 < = H ( X ) < = l o g n 0<=H(X)<=logn 0<=H(X)<=logn.
例如,一个骰子6个面全是1,那么 H ( X ) = ? 1 ? l o g 1 = 0 H(X)=-1*log1=0 H(X)=?1?log1=0。因为结果是确定的。
如果6个面分别为1,2,3,4,5,6,并且每个面的概率相同,都是 1 6 \dfrac{1}{6} 61?。那么 H ( X ) = ? ( 1 6 l o g ( 1 6 ) + 1 6 l o g ( 1 6 ) + 1 6 l o g ( 1 6 ) + 1 6 l o g ( 1 6 ) + 1 6 l o g ( 1 6 ) + 1 6 l o g ( 1 6 ) ) = ? ( 0.17 ? ( ? 2.58 ) ? 6 ) = 2.58 H(X)=-(\dfrac{1}{6}log(\dfrac{1}{6})+\dfrac{1}{6}log(\dfrac{1}{6})+\dfrac{1}{6}log(\dfrac{1}{6})+\dfrac{1}{6}log(\dfrac{1}{6})+\dfrac{1}{6}log(\dfrac{1}{6})+\dfrac{1}{6}log(\dfrac{1}{6}))=-(0.17*(-2.58)*6)=2.58 H(X)=?(61?log(61?)+61?log(61?)+61?log(61?)+61?log(61?)+61?log(61?)+61?log(61?))=?(0.17?(?2.58)?6)=2.58,这个时候的不确定性就比刚才要高。

设有随机变量(X,Y),其联合概率分布为 P ( X = x i , Y = y i ) = p i , j , i = 1 , 2 , 3... n ; j = 1 , 2 , 3... m P(X=x_i,Y=y_i)=p_{i,j},i=1,2,3...n; j=1,2,3...m P(X=xi?,Y=yi?)=pi,j?,i=1,2,3...n;j=1,2,3...m
条件熵H(Y|X):表示在已知随机变量X的条件下,Y的不确定性。定义为X给定条件下Y的条件概率分布的熵对X的数学期望: H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i) H(YX)=i=1n?pi?H(YX=xi?)

当熵和条件熵,由数据估计得到时,分别称为经验熵与经验条件熵。

信息增益:特征A对训练数据集D的信息增益g(D,A)定义为:集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差: g ( D , A ) = H ( D ) ? H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)?H(DA)
这表示了特征X的引入,使得分类Y的不确定性减少的程度。
互信息=信息熵H(Y)-条件熵H(Y|X)

1.3 信息增益的算法

设训练数据集为D
|D|表示其样本容量,即样本个数
设有K个类 C k C_k Ck?,k=1,2,3…K
∣ C k ∣ |C_k| Ck?表示属于类 C k C_k Ck?的样本数
特征A有n个不同的取值{ a 1 , a 2 , . . . a n a_1,a_2,...a_n a1?,a2?,...an?}。根据特征A的取值,将D划分为n个子集 D 1 , D 2 . . . D n D_1,D_2...D_n D1?,D2?...Dn?
∣ D i ∣ |D_i| Di?为子集 D i D_i Di?的样本个数
子集 D i D_i Di?中属于类 C k C_k Ck?的样本集合为 D i k D_{ik} Dik?
∣ D i k ∣ |D_{ik}| Dik?为集合 D i k D_{ik} Dik?的样本数

输入:数据集D,以及特征A
输出:特征A对数据集的信息增益g(D,A)
1 计算数据集D的经验熵H(D): H ( D ) = ? ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^K\dfrac{|C_k|}{|D|}log_2\dfrac{|C_k|}{|D|} H(D)=?k=1K?DCk??log2?DCk??
2 计算特征A对数据集D的经验条件熵H(D|A): H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ H(D|A)=\sum_{i=1}^n\dfrac{|D_i|}{|D|}H(D_i)=\sum_{i=1}^n\dfrac{|D_i|}{|D|}\sum_{k=1}^K\dfrac{|D_{ik}|}{|D_i|}log_2\dfrac{|D_{ik}|}{|D_i|} H(DA)=i=1n?DDi??H(Di?)=i=1n?DDi??k=1K?Di?Dik??log2?Di?Dik??
3 计算信息增益g(D,A): g ( D , A ) = H ( D ) ? H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)?H(DA)

1.4 信息增益比

以信息增益来选择特征,会倾向于选择特征取值多的特征。可以使用信息增益比来解决这个问题。

特征A对数据集D的信息增益比定义为信息增益与训练数据集D关于特征A的值的熵的比: g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\dfrac{g(D,A)}{H_A(D)} gR?(D,A)=HA?(D)g(D,A)?
H A ( D ) = ? ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ D i ∣ ∣ D ∣ H_A(D)=-\sum_{i=1}^n\dfrac{|D_i|}{|D|}log_2\dfrac{|D_i|}{|D|} HA?(D)=?i=1n?DDi??log2?DDi??,n为特征A的取值个数

2 决策树ID3

2.1 ID3树的构建

按照信息增益选择特征,形成的决策树称为ID3树。

输入:训练数据集D、特征集合A、阈值 ? \epsilon ?
输出:决策树T
1 若D中所有实例属于同一类 C k C_k Ck?,则T为单节点树,并将类 C k C_k Ck?作为该节点的类标签,返回T;
2 若 A = ? A=\empty A=?,则T为单节点树,并选择D中实例数最大的类 C k C_k Ck?作为该节点的类标签,返回T;
3 按照信息增益的算法,计算特征集合A中每个特征对D的信息增益,选择信息增益最大的特征 A g A_g Ag?;
4 如果 A g A_g Ag?的信息增益小于阈值 ? \epsilon ?,则T为单节点树,并选择D中实例数最大的类 C k C_k Ck?作为该节点的类标签,返回T;
5 否则,对 A g A_g Ag?的每一个可能的值 a i a_i ai?,依 A g = a i A_g=a_i Ag?=ai?将D分割为若干非空子集 D i D_i Di?,将 D i D_i Di?中实例数最大的类作为节点标记,构建子节点。由节点及其子节点构成树T,返回T;
6 对第i个子节点,以数据集 D i D_i Di?作为训练集,以A-{ A g A_g Ag?}为特征集,递归地调用步骤1-5,得到子树 T i T_i Ti?,返回 T i T_i Ti?

2.2 决策树的剪枝

2.2.1 损失函数定义与计算

通过极小化 决策树整体的损失函数 来实现。
设树|T|的叶子节点个数为|T|,t是树T的叶子节点,该叶子节点有 N t N_t Nt?个样本。其中k类的样本量为 N t k N_{tk} Ntk?,k=1,2,3…K。
说明:一棵树T的叶子节点不一定只包含一类数据。例如在上述步骤2和5,就可能一个节点中实际存在多个类别的数据。只是因为再细分特征的信息增益太小了,不再划分。

H t ( T ) H_t(T) Ht?(T)为叶子节点t上的经验熵, α > = 0 \alpha>=0 α>=0为参数,
损失函数: C α ( T ) = ∑ i = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ C_{\alpha}(T)=\sum_{i=1}^{|T|}N_tH_t(T)+\alpha|T| Cα?(T)=i=1T?Nt?Ht?(T)+αT
说明:树的损失函数对所有叶子节点的遍历。每一个叶子节点计算:当前叶子节点个数 N t N_t Nt?,以及叶子节点的熵 H t ( T ) H_t(T) Ht?(T)。它们的乘积表示当前叶子节点不确定的度量,也就是损失。对所有叶子节点不确定性的度量,就称为树的损失。
α ∣ T ∣ \alpha|T| αT是为了防止树过拟合。

∑ i = 1 ∣ T ∣ N t H t ( T ) \sum_{i=1}^{|T|}N_tH_t(T) i=1T?Nt?Ht?(T)熵越小,说明叶子节点越来越多,这一部分会使得模型越来越复杂。 α ∣ T ∣ \alpha|T| αT是为了对抗模型过渡复杂。

经验熵: H t ( T ) = ? ∑ k N t k N t l o g N t k N t H_t(T)=-\sum_k\dfrac{N_{tk}}{N_t}log\dfrac{N_{tk}}{N_t} Ht?(T)=?k?Nt?Ntk??logNt?Ntk??

C ( T ) = ∑ i = 1 ∣ T ∣ N t H t ( T ) = ? ∑ i = 1 ∣ T ∣ ∑ k = 1 K N t k l o g N t k N t C(T)= \sum_{i=1}^{|T|}N_tH_t(T)=-\sum_{i=1}^{|T|}\sum_{k=1}^KN_{tk}log\dfrac{N_{tk}}{N_t} C(T)=i=1T?Nt?Ht?(T)=?i=1T?k=1K?Ntk?logNt?Ntk??

那么 C α ( T ) = C ( T ) + α ∣ T ∣ C_{\alpha}(T)=C(T)+\alpha|T| Cα?(T)=C(T)+αT

2.2.2 剪枝过程

输入:决策树T,参数 α \alpha α
输出:剪枝后的子树 T α T_{\alpha} Tα?
1 计算每个节点的经验熵
2 递归地从树的叶子结点向上缩
设一组叶子节点回缩到其父节点之前与之后的孙淑函数分别为: C α ( T B ) C_{\alpha}(T_B) Cα?(TB?) C α ( T A ) C_{\alpha}(T_A) Cα?(TA?)
如果: C α ( T A ) C_{\alpha}(T_A) Cα?(TA?)<= C α ( T B ) C_{\alpha}(T_B) Cα?(TB?),则进行剪枝。
3 返回2,直至不能继续为止,得到损失最小的子树 T a T_a Ta?

以上过程将信息增益,换成信息增益比,那么得到的树就是C4.5。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:50:48  更:2022-03-21 20:51:00 
 
开发: 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/26 14:32:18-

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