程序员必知:XGB算法梳理

简介: 程序员必知:XGB算法梳理

学习内容:

1.CART树

2.算法原理

3.损失函数

4.分裂结点算法

5.正则化

6.对缺失值处理

7.优缺点

8.应用场景

9.sklearn参数

1.CART树

  CART算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。在CART算法中主要分为两个步骤

将样本递归划分进行建树过程

用验证数据进行剪枝

2.算法原理

  输入:训练数据集DDD,停止计算的条件;

  输出:CART决策树。

  根据训练数据集,从根结点开始,递归地对每个结点进行一下操作,构建二叉决策树:

  1)设结点的训练数据集为DDD,计算现有特征对该点数据集的基尼指数。此时,对每个特征A,对其可能取的每个值aaa,根据样本点计算对A=aA=aA = a的测试为“是”或“否”讲DDD分割成D1D1D_1和D2D2D_2两部分,计算A=aA=aA = a时的基尼指数。

  2)在所有 可能的特征AAA以及他们所有可能的切分点aaa中,选择基尼指数最小的特征及其对应的切分点作为最优切分点,依最有特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。

  3)对两个子结点递归地调用1),2),直至满足停止条件。

  4)生成CART决策树。

3.损失函数

  L=∑xi≤Rm(yi?f(xi))2+K∑i=1Ω(fk)L=∑xi≤Rm(yi?f(xi))2+∑i=1KΩ(fk)L = \sum\limits_{x_i \leq R_m}//代码效果参考:http://www.ezhiqi.com/zx/art_7490.html (y_i - f(xi))^2 + \sum\limits{i=1}^K \Omega (f_k)

4.分裂结点算法

  使用基尼指数用于分裂结点的依据

  概率分布的基尼指数定义为:Gini(p)=K∑k=1pk(1?pk)=1?K∑k=1p2kGini(p)=∑k=1Kpk(1?pk)=1?∑k=1Kpk2Gini(p) = \sum\limits_{k=1}^K p_k (1-pk) = 1 - \sum\limits{k=1}^K p_k^2

  如果样本那集合D根据特征A是否取某一可能值aaa被分割成D1D1D_1和D2D2D_2两部分,即D1={<span class="mjx-char MJXc-TeX-main-R" style="padding-to

相关文章
|
6天前
|
算法 JavaScript 程序员
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
|
2月前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
2月前
|
机器学习/深度学习 算法 数据挖掘
每个程序员都应该知道的 40 个算法(四)(4)
每个程序员都应该知道的 40 个算法(四)
21 1
|
2月前
|
机器学习/深度学习 人工智能 算法
每个程序员都应该知道的 40 个算法(四)(3)
每个程序员都应该知道的 40 个算法(四)
23 2
|
2月前
|
分布式计算 并行计算 算法
每个程序员都应该知道的 40 个算法(四)(2)
每个程序员都应该知道的 40 个算法(四)
22 1
|
2月前
|
分布式计算 并行计算 算法
每个程序员都应该知道的 40 个算法(四)(1)
每个程序员都应该知道的 40 个算法(四)
29 2
|
2月前
|
存储 算法 安全
每个程序员都应该知道的 40 个算法(三)(4)
每个程序员都应该知道的 40 个算法(三)
22 1
|
2月前
|
存储 算法 安全
每个程序员都应该知道的 40 个算法(三)(3)
每个程序员都应该知道的 40 个算法(三)
19 0
|
2月前
|
机器学习/深度学习 自然语言处理 算法
每个程序员都应该知道的 40 个算法(三)(2)
每个程序员都应该知道的 40 个算法(三)
22 1
|
1天前
|
算法 索引
基于Prony算法的系统参数辨识matlab仿真
Prony算法在MATLAB2022a中用于信号分析,识别复指数信号成分。核心程序通过模拟信号X1,添加不同SNR的噪声,应用Prony方法处理并计算误差。算法基于离散序列的复指数叠加模型,通过构建矩阵并解线性方程组估计参数,实现LTI系统动态特性的辨识。