XGBoost算法
一、基础知识
(1)泰勒公式
泰勒公式是一个用函数在某点的信息描述其附近取值的公式。具有局部有效性。
基本形式如下:
由以上的基本形式可知泰勒公式的迭代形式为:
以上这个迭代形式是针对二阶泰勒展开,你也可以进行更多阶的泰勒展开。
(2)梯度下降法
在机器学习算法中,我们的目标是最小化损失函数L(theta), 结合泰勒展开公式,我们可以得到如下的公式:
为什么这里的, 我觉得是因为这样它和前面的
相乘之后,只要a取正值,那么他的变化值就一定是一个负数,换句话,这样就能够确保他的损失一定是减少的。
(3)牛顿法
牛顿法和梯度下降法一样都是一种优化手段。他们二者的区别在于牛顿法采用的二阶泰勒展开,而梯度下降使用的一阶泰勒展开。
二、概念解释
(1)gradient descend和gradient boosting
gradient descend和gradient boosting的区别在于前者是对于参数的更新,后者是对于模型的更新
(2)Boosting算法
Boosting算法是一种加法模型:
(3)决策树
决策树的优点:可解释性,可处理混合类型特征,具有伸缩不变形,具有特征组合的作用,可自然的处理缺失值,对异常点鲁棒, 有特征选择作用,可拓展性强,容易并行
决策树的缺点:缺乏平滑性(针对回归树), 不适合处理高维稀疏数据
三、GBDT算法
XGBoost算法是GBDT算法的进阶版,在我们了解和实现XGBoost算法之前,要先了解GBDT算法。
XGBoost算法的更多相关文章
- XGBoost算法--学习笔记
学习背景 最近想要学习和实现一下XGBoost算法,原因是最近对项目有些想法,准备做个回归预测.作为当下比较火的回归预测算法,准备直接套用试试效果. 一.基础知识 (1)泰勒公式 泰勒公式是一个用函数 ...
- 机器学习总结(一) Adaboost,GBDT和XGboost算法
一: 提升方法概述 提升方法是一种常用的统计学习方法,其实就是将多个弱学习器提升(boost)为一个强学习器的算法.其工作机制是通过一个弱学习算法,从初始训练集中训练出一个弱学习器,再根据弱学习器的表 ...
- Python机器学习笔记:XgBoost算法
前言 1,Xgboost简介 Xgboost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器.因为Xgboost是一种提升树模型,所以它是将许多 ...
- 说说xgboost算法
xgboost算法最近真是越来越火,趁着这个浪头,我们在最近一次的精准营销活动中,也使用了xgboost算法对某产品签约行为进行预测和营销,取得了不错的效果.说到xgboost,不得不说它的两大优势, ...
- [ML学习笔记] XGBoost算法
[ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ...
- 转载:XGBOOST算法梳理
学习内容: CART树 算法原理 损失函数 分裂结点算法 正则化 对缺失值处理 优缺点 应用场景 sklearn参数 转自:https://zhuanlan.zhihu.com/p/58221959 ...
- xgboost算法教程(两种使用方法)
标签: xgboost 作者:炼己者 ------ 欢迎大家访问我的简书以及我的博客 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! ------ ...
- XGBoost算法原理小结
在两年半之前作过梯度提升树(GBDT)原理小结,但是对GBDT的算法库XGBoost没有单独拿出来分析.虽然XGBoost是GBDT的一种高效实现,但是里面也加入了很多独有的思路和方法,值得单独讲一讲 ...
- 04-09 XgBoost算法
目录 XgBoost算法 一.XgBoost算法学习目标 二.XgBoost算法详解 2.1 XgBoost算法参数 2.2 XgBoost算法目标函数 2.3 XgBoost算法正则化项 2.4 X ...
随机推荐
- Luogu 3332 [ZJOI2013]K大数查询
BZOJ 3110 很早就想写的试炼场题. 不会整体二分啊呜呜呜,只能写写树套树. 有一个trick就是外层使用一个权值线段树,把位置作为下标的线段树放在内层,这样子的话我们在查询$k$大的时候就可以 ...
- Entity Framework Code-First(23):Entity Framework Power Tools
Entity Framework Power Tools: Entity Framework Power Tools (currently in beta 3) has been released. ...
- 对Spark的理解
Spark作为一个新的分布式计算引擎正慢慢流行起来,越来越来的企业也准备用它的替换MapReduce,根据自己在工作的一些体会谈谈的优势. 分布式计算归根到底还是一个Map和Reduce操作,Map操 ...
- Java并发之FutureTask
FutureTask实现了Runnable和Future接口,是一个可取消的异步任务.利用开始和取消计算的方法.查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现.仅在 ...
- 用Pdg2.DLL解码PDG的境界
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2008.08.03 一.入门级原理:按照<用BCB实现超星格式转换为BMP格式>中说的方法调用Pdg2.DLL接 ...
- 根据GridView模板里的列名获取列索引
以前Insus.NET在写过一篇<在Gridview控件中根据Field Name来取得对应列索引> http://www.cnblogs.com/insus/archive/2010/0 ...
- Dubbo接口测试方法及步骤
1)打开soapUI,点击File--New project: 2)右键New REST service from URL,注:因为dubbo接口不像http接口一样有URL,所以这里的URL可以随便 ...
- Kotlin第一篇 Hello Kotlin以及简单介绍。
首先需要一个编译器,我们使用Intellij IDE https://www.jetbrains.com/idea/download/#section=windows 下载下来安装好. 那么我们就来 ...
- JDK Linux下安装
下载jdk-6u45-linux-x64.bin到/root目录下执行./jdk-6u45-linux-x64.bin 会在/root目录下生成 jdk1.6.0_45 文件 之后配置环境变量 编辑/ ...
- 51nod - 1179 - 最大的最大公约数 - 枚举
因为 \(\sum\limits_{i=1}^{n}\lfloor\frac{n}{i}\rfloor=O(nlogn)\) 所以直接暴力就可以了. #include<bits/stdc++.h ...