GBDT原理
| 样本编号 | 花萼长度(cm) | 花萼宽度(cm) | 花瓣长度(cm) | 花瓣宽度 | 花的种类 |
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | 山鸢尾 |
| 2 | 4.9 | 3.0 | 1.4 | 0.2 | 山鸢尾 |
| 3 | 7.0 | 3.2 | 4.7 | 1.4 | 杂色鸢尾 |
| 4 | 6.4 | 3.2 | 4.5 | 1.5 | 杂色鸢尾 |
| 5 | 6.3 | 3.3 | 6.0 | 2.5 | 维吉尼亚鸢尾 |
| 6 | 5.8 | 2.7 | 5.1 | 1.9 | 维吉尼亚鸢尾 |
6个样本的三分类问题:
(1)三维向量标志样本的label:
[1,0,0] 表示样本属于山鸢尾,
[0,1,0] 表示样本属于杂色鸢尾,
[0,0,1] 表示属于维吉尼亚鸢尾
(2) 对每一个类训练一个CART Tree 模型: 三个树相互独立
山鸢尾类别训练一个 CART Tree 1。
杂色鸢尾训练一个 CART Tree 2 。
维吉尼亚鸢尾训练一个CART Tree 3
(3) 以样本1为例
针对CART Tree 1,训练样本是[5.1,3.5,1.4,0.2],label 是 1,最终输入到模型当中的为[5.1,3.5,1.4,0.2,1]
针对CART Tree 2,训练样本是[5.1,3.5,1.4,0.2],label 是 1,最终输入到模型当中的为[5.1,3.5,1.4,0.2,0]
针对CART Tree 3,训练样本是[5.1,3.5,1.4,0.2],label 是 1,最终输入到模型当中的为[5.1,3.5,1.4,0.2,0]
(4)CART Tree1生成:哪个特征最合适? 这个特征的什么特征值作为切分点?以CART Tree 1为例
1. 从这四个特征中找一个特征做为CART Tree1 的节点,遍历所有的可能值
1.1 第一个特征【长度】的第一个特征值【5.1cm】为例。
R1 为所有样本中花萼长度小于 5.1 cm 的样本集合,
R2 为所有样本当中花萼长度大于等于 5.1cm 的样本集合。

y1为R1样本的label均值:y1=1/1=1
y2为R2样本的label均值:y2=(1+0+0+0+0)/5=0.2
样本1属于R2的值为:(1-0.2)^2
样本2属于R1的值为:(1-1)^2
样本3属于R2的值为(0-0.2)^2
样本4属于R2的值为(0-0.2)^2
样本5属于R2的值为(0-0.2)^2
样本6属于R2的值为(0-0.2)^2
CART Tree 1在第一个特征【长度】的第一个特征值【5.1cm】的损失值为:(1-0.2)^2+ (1-1)^2 + (0-0.2)^2+(0-0.2)^2+(0-0.2)^2 +(0-0.2)^2= 0.84
1.2 第一个特征【长度】的第二个特征值【4.9cm】计算,损失值为:2.244189
1.3 遍历所有特征的特征值,查找最小的特征及特征值,特征花萼长度,特征值为5.1 cm。这个时候损失函数最小为 0.8
2. 预测函数

R1 = {2},R2 = {1,3,4,5,6},y1 = 1,y2 = 0.2
样本属于类别山鸢尾类别的预测值f1(x)=1+0.2∗5=2f1(x)=1+0.2∗5=2
同理我们可以得到对样本属于类别2,3的预测值f2(x)f2(x),f3(x)f3(x).样本属于类别1的概率 即为

GBDT原理的更多相关文章
- GBDT原理及利用GBDT构造新的特征-Python实现
1. 背景 1.1 Gradient Boosting Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向.损失函数是 ...
- 梯度提升树(GBDT)原理小结(转载)
在集成学习值Adaboost算法原理和代码小结(转载)中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boos ...
- XGBoost,GBDT原理详解,与lightgbm比较
xgb原理: https://www.jianshu.com/p/7467e616f227 https://blog.csdn.net/a819825294/article/details/51206 ...
- 手撸GBDT原理(未完成)
一直对GBDT里面的具体计算逻辑不太清楚,在网上发现了一篇好博客. 先上总结的关系图 GBDT对类别变量是怎么处理的? 这些东西都是在网上发现的,讲的挺好的. GBDT原理与Sklearn源码分析-回 ...
- 机器学习入门:极度舒适的GBDT原理拆解
机器学习入门:极度舒适的GBDT拆解 本文旨用小例子+可视化的方式拆解GBDT原理中的每个步骤,使大家可以彻底理解GBDT Boosting→Gradient Boosting Boosting是集成 ...
- 梯度提升树(GBDT)原理小结
在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting De ...
- GBDT原理实例演示 1
考虑一个简单的例子来演示GBDT算法原理 下面是一个二分类问题,1表示可以考虑的相亲对象,0表示不考虑的相亲对象 特征维度有3个维度,分别对象 身高,金钱,颜值 cat dating.txt ...
- GBDT原理学习
首先推荐 刘建平 的博客学习算法原理推导,这位老师的讲解都很详细,不过GBDT的原理讲解我没看明白, 而是1.先看的https://blog.csdn.net/zpalyq110/article/de ...
- GBDT原理实例演示 2
一开始我们设定F(x)也就是每个样本的预测值是0(也可以做一定的随机化) Scores = { 0, 0, 0, 0, 0, 0, 0, 0} 那么我们先计算当前情况下的梯度值 ...
- GBDT原理详解
从提升树出发,——>回归提升树.二元分类.多元分类三个GBDT常见算法. 提升树 梯度提升树 回归提升树 二元分类 多元分类 面经 提升树 在说GBDT之前,先说说提升树(boosting tr ...
随机推荐
- 04_web基础(六)之请求转发与重定向
1.交互方式 Web组件之间跳转: 从AServlet 跳转到 BServlet. 三种类型: 1:请求转发(forward) 2:URL重定向(redirect) 3:请求包含(include) 3 ...
- Python教程_简介2
人生苦短,我用Python--Life is short,you need Python. https://www.bilibili.com/video/av14184325/?p=101 Pytho ...
- node 加载逻辑
[node 加载逻辑] require(X) from module at path Y . If X is a core module, a. return the core module b. S ...
- js中的全局变量
在js中有3中声明全局变量的方式 第一种使用var+变量名,在方法外部声明: var msg; //默认值undefined $(function(){ setmsg(); showmsg(); }) ...
- 安装好kali要做的事
更换更新源 vim /etc/apt/sources.list #中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free c ...
- Pandas汇总和处理缺失数据
汇总的函数 方法 说明 count 非NA的值数量 describe 针对Series和DataFrame列计算汇总统计 min.max 计算最小值和最大值 argmin.argmax 计算能够获取到 ...
- WAS 常见报错
1) An error occurred while deleting the server. ADMG0011E: An unexpected exception occurred com.ibm. ...
- CentOS rpm
rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM ...
- Netty编解码技术
编解码技术,说白了就是java序列化技术,序列化目的就两个,第一进行网络传输,第二对象持久化. 虽然我们可以使用java进行对象序列化,netty去传输,但是java序列化的硬伤比较多,比如java序 ...
- mysql系列(3)之 DML语句
DML操作指的是对数据库中表记录的操作,主要包括表记录的插入(insert).更新(update).删除(delete)和查询(select). 1.插入