样本编号 花萼长度(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原理的更多相关文章

  1. GBDT原理及利用GBDT构造新的特征-Python实现

    1. 背景 1.1 Gradient Boosting Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向.损失函数是 ...

  2. 梯度提升树(GBDT)原理小结(转载)

    在集成学习值Adaboost算法原理和代码小结(转载)中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boos ...

  3. XGBoost,GBDT原理详解,与lightgbm比较

    xgb原理: https://www.jianshu.com/p/7467e616f227 https://blog.csdn.net/a819825294/article/details/51206 ...

  4. 手撸GBDT原理(未完成)

    一直对GBDT里面的具体计算逻辑不太清楚,在网上发现了一篇好博客. 先上总结的关系图 GBDT对类别变量是怎么处理的? 这些东西都是在网上发现的,讲的挺好的. GBDT原理与Sklearn源码分析-回 ...

  5. 机器学习入门:极度舒适的GBDT原理拆解

    机器学习入门:极度舒适的GBDT拆解 本文旨用小例子+可视化的方式拆解GBDT原理中的每个步骤,使大家可以彻底理解GBDT Boosting→Gradient Boosting Boosting是集成 ...

  6. 梯度提升树(GBDT)原理小结

    在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting De ...

  7. GBDT原理实例演示 1

    考虑一个简单的例子来演示GBDT算法原理 下面是一个二分类问题,1表示可以考虑的相亲对象,0表示不考虑的相亲对象 特征维度有3个维度,分别对象 身高,金钱,颜值     cat dating.txt ...

  8. GBDT原理学习

    首先推荐 刘建平 的博客学习算法原理推导,这位老师的讲解都很详细,不过GBDT的原理讲解我没看明白, 而是1.先看的https://blog.csdn.net/zpalyq110/article/de ...

  9. GBDT原理实例演示 2

        一开始我们设定F(x)也就是每个样本的预测值是0(也可以做一定的随机化) Scores = { 0, 0, 0, 0, 0, 0, 0, 0}     那么我们先计算当前情况下的梯度值     ...

  10. GBDT原理详解

    从提升树出发,——>回归提升树.二元分类.多元分类三个GBDT常见算法. 提升树 梯度提升树 回归提升树 二元分类 多元分类 面经 提升树 在说GBDT之前,先说说提升树(boosting tr ...

随机推荐

  1. 04_web基础(六)之请求转发与重定向

    1.交互方式 Web组件之间跳转: 从AServlet 跳转到 BServlet. 三种类型: 1:请求转发(forward) 2:URL重定向(redirect) 3:请求包含(include) 3 ...

  2. Python教程_简介2

    人生苦短,我用Python--Life is short,you need Python. https://www.bilibili.com/video/av14184325/?p=101 Pytho ...

  3. node 加载逻辑

    [node 加载逻辑] require(X) from module at path Y . If X is a core module, a. return the core module b. S ...

  4. js中的全局变量

    在js中有3中声明全局变量的方式 第一种使用var+变量名,在方法外部声明: var msg; //默认值undefined $(function(){ setmsg(); showmsg(); }) ...

  5. 安装好kali要做的事

    更换更新源 vim /etc/apt/sources.list #中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free c ...

  6. Pandas汇总和处理缺失数据

    汇总的函数 方法 说明 count 非NA的值数量 describe 针对Series和DataFrame列计算汇总统计 min.max 计算最小值和最大值 argmin.argmax 计算能够获取到 ...

  7. WAS 常见报错

    1) An error occurred while deleting the server. ADMG0011E: An unexpected exception occurred com.ibm. ...

  8. CentOS rpm

    rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM ...

  9. Netty编解码技术

    编解码技术,说白了就是java序列化技术,序列化目的就两个,第一进行网络传输,第二对象持久化. 虽然我们可以使用java进行对象序列化,netty去传输,但是java序列化的硬伤比较多,比如java序 ...

  10. mysql系列(3)之 DML语句

    DML操作指的是对数据库中表记录的操作,主要包括表记录的插入(insert).更新(update).删除(delete)和查询(select). 1.插入