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 ...
随机推荐
- python3-字典的增删改查
# Auther: Aaron Fan info = { "stull01":"alen zhang", "stull02":"s ...
- Java50道经典习题-程序30 插入数字
题目:有一个已经排好序的数组.现输入一个数,要求将它插入数组中后数组依然是排好序的.分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置. imp ...
- [raspberry pi3] 编译安装chromium
想要试试arm板上使用selenium是不是可能,发现Firefox什么的不顶用,网上有提供的chrome的安装手顺,但是没有arm版本的对应的chromedriver,只能自己搞了. 这边介绍的方法 ...
- Gazebo学习随记5 杂记
模拟建筑编辑器 将卫星图导入世界,方便空中机器人模拟 录像和回放 记录筛选 给关节添加力/扭矩 一开始不知道哪里出现了偏差以一动不动,重启就好了 HDF5数据集 代码内省 模型插件 !!!我终于 ...
- Python学习第三方库Requests: 让 HTTP 服务人类
转自官方文档:http://cn.python-requests.org/zh_CN/latest/ 快速上手 http://cn.python-requests.org/zh_CN/latest/u ...
- 【Python OpenGL】【2】第一个三角形(Pyopengl)
根据顶点缓存来生成图元(Python OpenGL) 原文(英文链接)http://ogldev.atspace.co.uk/www/tutorial03/tutorial03.html __auth ...
- Unity---编辑器扩展---更新中
目录 1.Unity编辑器扩展介绍 2.具体功能 2.1.在菜单栏中添加扩展 2.2.为扩展事件添加快捷键 2.3.Hierarchy,Project视图中右键添加扩展 2.4.使用Selection ...
- luogu2253 好一个一中腰鼓!
先说一个小trick,一开始我们把他赋值成是红.白相间的,查询就查询的是全红或全白即可. 然后就可以做啦 题解里面好像都是线段树 暴力的题解好像都被del了 貌似暴力交上去也过不了了 然后我想说 分块 ...
- boost库checked_delete的使用
在查看boost库时发现一个小文件checked_delete.hpp里面几个小函数,它的作用用很简短的话来说:防止未定义的行为造成delete时的内存泄露.实现如下: template<cla ...
- Java技术列表
完整的java技术列表,可以在oracle官网找到: https://www.oracle.com/technetwork/java/javaee/tech/index.html JSR: Java ...