【机器学习基础】深入理解Logistic Loss与回归树
Logistic Function
Logistic Function最常见的定义形式如下:
其中,
,实际上这个公式起源于伯努利分布,
代表概率,关于其起源在此暂不赘述。
公式有一个重要的性质,即:
并且公式的形式在逻辑回归二分类中被广泛应用,其中
通常代表预测样本属于正例的概率。假设
代表由多个特征组成的样本向量,
代表由每个特征的系数构成的向量,
代表样本的类别标记,
代表正例,
代表反例,则
如果反例标记用表示,则预测正例样本的公式和预测反例样本的公式可以集成为一个公式:
其中g = 1代表正例,代表反例。
二进制交叉熵与Logistic Loss
假设是hypothesis function,而L是loss function,训练有监督学习器的时候实际上都是如下的优化问题:
我们已经知道如果是二分类器的话,且输出是概率形式,那么我们可以选择二进制交叉熵来作为loss function,比如假设就是logistic function
用二进制交叉熵作为loss function,正例标记为,反例标记为
,则
假设是另外一个hypothesis function,且
,把
带入
式可以得到
显然式和
式是等价的,即
式的Loss形式叫作针对
的Logistic Loss,也就是说针对
的二进制交叉熵损失等价于针对
的Logistic损失,而
实际上是
通过Logistic function的映射,即
也就是说不论这个hypothesis function是什么形式,针对
使用Logistic Loss就可以用于二分类问题,因为针对
使用Logistic Loss就等价于针对
使用二进制交叉熵损失。
如果是用于二分类的深层神经网络,这里的则可以看成是神经网络的最后一个Sigmoid输出神经元,如果
仍然看作是原始输入样本的话,则
可以看成是从输入层到最后一个隐层整体构成的复合函数。
著名的梯度提升机(GBM, Gradient Boosting Machine)实际上可以对任何学习器进行Boosting操作,Boosting是一种集成学习方法,已经证明任何弱学习器都有提升为强学习器的潜能,因此Boosting通常指把弱学习器提升为强学习器的提升方法。另外,这里的Gradient是指Gradient Descent,不是中文字面意思的“梯度值提升”,“提升”是指Boosting这种集成学习范式。
GBM最常见的是GBDT(Gradient Boosting Decision Tree),因为GBDT实际上用的是基于CART中的回归树的加性模型,所以GBDT也常叫作GBRT(Gradient Boosting Regression Tree),也就是说GBDT中的弱学习器是经典的Breiman的CART中的Regression Tree,我们知道GBDT既可以用于回归也可以用于分类,那么回归树是如何用于分类的呢?
这里只讨论二分类的情况,多分类情况暂不赘述。由式知道如果
就是回归树的hypothesis function,也就是说
就是回归树的叶子结点的输出,那么通过Logistic function映射成
后再对
使用二进制交叉熵损失就可以做二分类任务了,由
式知道也就是说直接对回归树
使用Logistic Loss就可以做二分类任务了。
回归树回归分类原理
CART(Classification and Regression Tree)是最早由Breiman等人提出的一类决策树算法,其中Classification Tree使用基尼系数作为分裂准则,在此暂不赘述分类树细节,Regression Tree采用启发式算法寻找最优分裂节点,这里推导一下Loss function分别采用Squared Loss和Logistic Loss的回归和分类的数学原理。
采用Squared Loss的回归树回归
关于CART回归树的原理推导可以参考李航的《统计学习方法》,我这里试图用更通俗易懂,更详细严谨的方式进行解读和推导。
首先假设hypothesis function为,也即回归树为
,样本向量为
,
是样本
的真实target值,则回归树
的回归预测公式为
其中为样本编号,
为回归树第
个样本的估计值。
Squared Loss形式记为
其中为样本编号为
的真实target值。
CART回归树为二叉树,其关键在于如何在特征空间中选择最优分裂节点进行多次二分叉分裂。用表格的形式更容易进行通俗易懂的解释,为了严谨这里先对张量的概念做一个通俗易懂的理解。
通俗理解张量:向量是一维张量,矩阵(表格)是二维张量,而像魔方那样每个小方块代表一个数据,所有数据存储在一个“三维”空间中的是三维张量(比如三通道的RGB彩色图片),当然还有更高维的张量,在各种编程语言中就对应着高维数组,实际上在物理学中对张量有严格的定义,由于其概念过于抽象,这里暂不赘述。
现在假设训练数据都存放在一张二维表格中,这里的“二维”指张量的二维。假设表格有列,
行,前
列为特征,最后一列为target
,每一行的前
列构成
维样本向量
,前
列所有数据叫作特征空间(输入空间),最后一列叫作输出空间。回归树用启发式方法在特征空间中寻找最优分裂节点对表格进行多次划分,意思就是遍历每个特征的取值,根据每个特征的取值作为判断依据(分裂节点)把表格一分为二,一分为二后的两份表格的这个特征的所有取值要么都大于等于这个判断依据(分裂节点),要么都小于等于这个判断依据(分裂节点)。第一次把原始表格进行一分为二划分的节点叫作根(root)节点,后面用同样的方法把“子表格”进行划分的节点都叫中间节点。那么如何判断哪个特征的哪个值是当前的最优分裂节点?
我们知道原始表格最终一定会被划分成多个子表格,每个子表格实际上是由多个判据值(分裂节点)所构成的规则下的样本的集合,这些样本同属一类,高度相似,因此可以假设每个子表格里(也就是符合这套规则的所有样本)的所有样本对应同一个估计值,假设最终总子表格数为
,用
代表相应的子表格(样本集合),相应的估计值就为
,也即
也就是说回归树的hypothesis function为
其中
根据式最小化Squared Loss
令式等于
,有
由式知道在Squared Loss下每个
内部的最优估计值就是
内部所有样本对应
的平均值。那么每一次分裂要如何选择最优分裂节点并一步步迭代呢?
我们已经知道每一次分裂相当于把表格一分为二,并且已经知道了在Squared Loss下分裂之后每个子表格对应的估计值取子表格内部所有样本对应的target值的平均值就可以使得子表格内部的Squared Loss最小,也就是说只要每次分裂后的两个子表格的最小Squared Loss值相加最小即可,采用的方法就是遍历每个特征及其每一个取值,尝试把每一个特征下的具体的值作为分裂节点,分裂成两个子表格后计算两个子表格的最小Squared Loss的和,如果这个和在遍历了所有可能的分裂节点后是最小的,那么这一次分裂就选当前的分裂节点。
具体地,假设是第
个特征,
是特征
的某个取值,把
和
分别作为切分变量和切分点,则可以把当前表格切分成如下两个表格:
和
计算下式寻找最优切分变量和最优切分点
,
由(21)式可以知道和
时可以使得
式在当前分裂点最小,也就是说只要遍历所有可能的分裂点(j,s),找到全局最小的
即可。后续每一次表格的一分为二都采取同样的方法,直到满足停止条件。采用Squared Loss的回归树也叫最小二乘回归树。
采用Logistic Loss的回归树二分类
由式已经知道了Logistic Loss由Logistic function和Binary Entropy Loss推导而来,而Logistic function也叫Sigmoid function,所以Logistic Loss也叫Sigmoid Binary Entropy Loss,它可以把回归模型用于二分类任务。
Logistic Loss最常用的形式是式的label
的形式,如果label
,则其形态为
在式中已经知道了回归树的hypothesis function,这里尝试采用Logistic Loss作为loss function来推导其训练过程。以下推导Logistic Loss采用
式的形态,所以取label
。那么训练分类器也就是如下的优化问题
令(27)式等于0,则
分裂思想与前述的最小二乘回归树一样,只不过Loss采用Logistic loss,采用(31)式的计算值。实际上由(30)式已经可以看出回归树的每个叶节点的权值都输入Logistic function把输出值映射到(0,1)后的值就是
里面
的均值。
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站qq群704220115,加入微信群请扫码:
【机器学习基础】深入理解Logistic Loss与回归树相关推荐
- 【机器学习基础】理解关联规则算法
一.基础概念 1.算法概述 关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系,它在我们的生活中有很多应用场景,"购物篮分析"就是一个常见的场景, ...
- 西瓜书+实战+吴恩达机器学习(一)机器学习基础(数据集划分、分类回归评估指标)
文章目录 0. 前言 1. 数据集划分方法 2. 模型性能度量 2.1. 回归评估指标 2.2. 分类评估指标 3. 非均等代价 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的 ...
- 【机器学习基础】理解为什么机器可以学习1——PAC学习模型
引言 自从下定决心认真学习机器学习理论开始,接触到很多基本问题,但其实都不是很理解,比如损失函数.风险函数.经验结构最小化.结构风险最小化.学习方法的泛化能力.VC维等,这些概念在学习中都纯属空泛的概 ...
- 机器学习基础:理解梯度下降本质「附Python代码」
https://www.toutiao.com/a6646958932096975373/ 2019-01-16 13:15:26 今天我们尝试用最简单的方式来理解梯度下降,在之后我们会尝试理解更复杂 ...
- 机器学习基础(三十一)—— 岭回归(Ridge Regression)到 LASSO
如果数据集的特征比样本点还多(XN×d,d>NX_{N\times d},d> NXN×d,d>N)怎么办?是否还可以使用线性回归来做预测?答案是否定的,因为在计算 (XTX)−1 ...
- 【NLP机器学习基础】从线性回归和Logistic回归开始
古语常云:"大道至简",万事万物纷繁复杂,最终却归至几个最简单的道理.我常常在想,如今很火的AI领域是否也是如此.将AI真正学懂学会的过程就像一场遥不可及的漫长攀登,起始于晦涩难懂 ...
- 【机器学习基础】(三):理解逻辑回归及二分类、多分类代码实践
本文是机器学习系列的第三篇,算上前置机器学习系列是第八篇.本文的概念相对简单,主要侧重于代码实践. 上一篇文章说到,我们可以用线性回归做预测,但显然现实生活中不止有预测的问题还有分类的问题.我们可以从 ...
- 【机器学习基础】逻辑回归 + GBDT模型融合实战!
作者:吴忠强,东北大学,Datawhale成员 一.GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导 ...
- 【李宏毅机器学习】Logistic Regression 逻辑回归(p11) 学习笔记
李宏毅机器学习学习笔记汇总 课程链接 文章目录 Logistic Regression Step 1: Function Set Step 2: Goodness of a Function Step ...
最新文章
- java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
- 一份520页的机器学习笔记!附下载链接
- 腾讯AI战略详解:技术社会与创新图景 | 2017互联网科技创新白皮书重磅首发
- 求解第K个斐波那契质数
- python 内网镜像站_搭建私有YUM仓库与内网镜像站
- spark内核回顾思考 RDD
- Python基础教程---读书笔记四
- 树莓派也跑Docker和.NET Core
- kotlin编译失败_聊两个 Kotlin 编译器的 bug
- Jeecg入门篇,高手掠过
- matlab与STK互联(不使用connect软件的互联)
- linux黑板模式,敲黑板!怎样使用 Linux stat 命令创建灵活文件列表?
- apache rewrite跳转多斜线问题(答网友)
- 我的第一场比赛——金马五校赛
- 大数据资源共享网盘下载
- iOS-AppStore上线被拒的各种理由...
- 樊登读书搞定读后感_樊登读书会听书《搞定》《高效人士的七个习惯》《人生效率手册》《搞定3》第四周学习感悟...
- 往事如烟 - 归去来
- 【WhaleCTF逆向题】Warmup题目writeup
- 理解CSS clear:both/left/right的含义以及应用
热门文章
- python相关软件安装
- adb install 和adb uninstall
- hdu 4109 Instrction Arrangement 拓扑排序 关键路径
- HTML5 使用 JS 生成二维码,带头像
- python报错 TypeError: an integer is required
- 一个Objective-C对象如何进行内存布局?(考虑有父类的情况)
- Android Studio的下载和安装教程(从ADT到AS)
- php isset缺陷 用array_key_exists
- (转)php-cli模式学习(PHP命令行模式)
- 公共界面_小区公共区域广告收益究竟归谁?