工作原理

基于集成算法的多个树累加, 可以理解为是弱分类器的提升模型

公式表达

基本公式

目标函数

目标函数这里加入了损失函数计算

这里的公式是用的均方误差方式来计算

最优函数解

要对所有的样本的损失值的期望, 求解最小的程度作为最优解

集成算法表示

集成算法中对所有的树进行累加处理

公式流程分解

每加一棵树都应该在之前基础上有一个提升

损失函数

叶子节点惩罚项

损失函数加入到基本公式目标函数中

多余出来的常数项就用 c 表示即可

目标函数推导

如上图. 三个树, 真实值 1000 , 第一棵树预测950, 残差 50

第二颗就预测 30, 残差 20 , 一次类推最终结果预测 995

这里拟定近似成为了泰勒展开的形式

然后优化的时候, 对于  是对上一颗树的结果, 这个值对于下面是不会变动的

因此可以视为常数, 和最后面的常数项合并省略掉了

然后 gi 表示一阶导, hi 表示二阶导

去除掉常数项对极值不会有影响后

就剩下了 

继续化简,   带入

 是对样本的遍历, 这样的话感觉和后面的 T 关系不大

在物理意义上所有的样本点都是会落到叶子节点上的

因此遍历样本和遍历叶子节点都是全部遍历到的

于是这里转换成对叶子节点的遍历 

对于每一个叶子节点则需要再遍历一次这个叶子节点上的所有样本 

而包含有 w2  的两项可以进行合并从而得到了

里面每个叶子节点的导数求和分别用 Gj 和 Hj 来表示一阶和二阶

从而进一步的化简得到最终的 目标函数

目标函数求解

怎么样的 wj 可以让目标函数最小? 依旧是对 wj 偏导

然后求导等于0获得 wj 的表达式带入原函数

得最终解

其中对每一个Hj Gj 都是可以得出的

以及 T 叶子节点数和 λ 都是已知的

目标函数使用实例

实际的操作中即可计算出每个叶子节点的一阶导二阶导

如果叶子中只有一个样本就按唯一的来算

多个就累加处理即可

而目标函数的的值越小则表示树结构越优

相比较之前的用熵值进行计算, 这里可以直接使用我们的目标函数的解来衡量判断模型

根据我们根据现有模型的值减去随机分割的左子树的值和右子树的值

然后这个值越大表示这时候的增益是最大的, 因此可以判断在哪里切是最优的

机器学习 - 算法 - Xgboost 数学原理推导的更多相关文章

  1. PCA主成分分析算法的数学原理推导

    PCA(Principal Component Analysis)主成分分析法的数学原理推导1.主成分分析法PCA的特点与作用如下:(1)是一种非监督学习的机器学习算法(2)主要用于数据的降维(3)通 ...

  2. SVM数学原理推导

    //2019.08.17 #支撑向量机SVM(Support Vector Machine)1.支撑向量机SVM是一种非常重要和广泛的机器学习算法,它的算法出发点是尽可能找到最优的决策边界,使得模型的 ...

  3. opencv——PCA(主要成分分析)数学原理推导

    引言: 最近一直在学习主成分分析(PCA),所以想把最近学的一点知识整理一下,如果有不对的还请大家帮忙指正,共同学习. 首先我们知道当数据维度太大时,我们通常需要进行降维处理,降维处理的方式有很多种, ...

  4. SVM数学原理推导&鸢尾花实例

    //看了多少遍SVM的数学原理讲解,就是不懂,对偶形式推导也是不懂,看来我真的是不太适合学数学啊,这是面试前最后一次认真的看,并且使用了sklearn包中的SVM来进行实现了一个鸢尾花分类的实例,进行 ...

  5. Dijkstar算法的数学原理

    Dijkstar算法是荷兰数学家迪克斯屈拉(or迪杰斯特拉?)在1959年发现的一个算法.是现有的几个求带权图中两个顶点之间最短通路的算法之一.算是一个相当经典的算法了. 迪克斯屈拉算法应用于无向连通 ...

  6. [杂记]对RSA算法的数学原理的一点思考

  7. DH算法图解+数学证明

    前几天和同事讨论IKE密钥交换流程时,提到了Diffie-Hellman交换.DH算法最主要的作用便是在不安全的网络上成功公共密钥(并未传输真实密钥).但由于对于DH算法的数学原理则不清楚,因此私下对 ...

  8. Spark Mllib里的协调过滤的概念和实现步骤、LS、ALS的原理、ALS算法优化过程的推导、隐式反馈和ALS-WR算法

    不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 (广泛采用) 协调过滤的概念 在现今的推荐技术和算法中,最被大家广泛认可和 ...

  9. 【机器学习笔记之七】PCA 的数学原理和可视化效果

    PCA 的数学原理和可视化效果 本文结构: 什么是 PCA 数学原理 可视化效果 1. 什么是 PCA PCA (principal component analysis, 主成分分析) 是机器学习中 ...

随机推荐

  1. c++第五次博客作业

           C++虚函数,纯虚函数,抽象类以及虚基类的区别   Part1.C++中的虚函数 什么是虚函数: 直观表达就是,如果一个函数的声明中有 virtual 关键字,那么这个函数就是虚函数. ...

  2. HDU - 5706 - Girlcat - 简单搜索 - 新手都可以看懂的详解

    原题链接: 大致题意:给你一个二维字符串,可以看成图:再给两个子串“girl”和“cat”,求图中任意起点开始的不间断连接起来的字母构成的两个子串的分别的个数:连接的方向只有不间断的上下左右. 搜索函 ...

  3. SignalR 初体验

    目录 一.前言 二.服务端 2.1.站点服务端 2.2.宿主服务或客户端 2.3.持久连接和集线器 三.客户端 3.1.使用代理客户端 3.2.不使用代理客户端 一.前言 微软官方给的说明:ASP.N ...

  4. django设置时区与语言

    django的目录下,django/conf/locale,这个目录下,看有什么语言包, zh_Hans代表中文简体,zh_Hant代表中文繁体,设置即可. TIME_ZONE设置为:Asia/Sha ...

  5. 通用分页jsp页面显示

    注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...

  6. html与HTML5的区别

    文档的类型声明不同 html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.or ...

  7. 学习了武沛齐讲的Day11-完

    DAY11 老师讲了很多,理解了一个方法   当有复杂的问题时,先拆解很小的单元(10行),测试通过了,再简化(3行) len range 感悟:其实不用计记代码(主要是记不动),,当遇到问题时:找出 ...

  8. YII框架的类自动加载机制

    YII之所以能实现快速的自动加载类文件,是因为它通过两种途径来实现. 先看文件 vendor\yiisoft\yii2\BaseYii.php 里面的 autoload 方法 public stati ...

  9. luogu_P4767 [IOI2000]邮局

    传送门 Description 高速公路旁边有一些村庄.高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识.没有两个在同样地方的村庄.两个位置之间的距离是其整数坐标差的绝对值. 邮局将建在一些,但 ...

  10. linux 网络带宽和延时测试

    Linux下使用qperf命令来测试网络带宽和网络延迟 参考文章:https://access.redhat.com/solutions/2122681 若是没有安装qperf命令,请使用yum 安装 ...