程序员必知: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

相关文章
|
3月前
|
负载均衡 监控 算法
每个程序员都应该知道的 6 种负载均衡算法
每个程序员都应该知道的 6 种负载均衡算法
298 2
|
4月前
|
算法 程序员 Python
程序员必看!Python复杂度分析全攻略,让你的算法设计既快又省内存!
在编程领域,Python以简洁的语法和强大的库支持成为众多程序员的首选语言。然而,性能优化仍是挑战。本文将带你深入了解Python算法的复杂度分析,从时间与空间复杂度入手,分享四大最佳实践:选择合适算法、优化实现、利用Python特性减少空间消耗及定期评估调整,助你写出高效且节省内存的代码,轻松应对各种编程挑战。
78 1
|
5月前
|
算法 搜索推荐 程序员
程序员常用算法详细讲解
每一种算法都有其适用场景,了解并熟悉这些常用算法的策略和实现,对于解决实际编程问题具有重要的意义。需要注意的是,理论知识的重要性虽然不言而喻,但真正的理解和掌握,还需要在实践中不断地尝试和错误,以达到深入理解的目的。
48 1
|
5月前
|
机器学习/深度学习 算法 搜索推荐
程序员必须掌握的算法
作为一名程序员,掌握一些重要的算法是必不可少的。算法是解决问题的方法和步骤,对于程序员来说,熟悉和掌握一些常见的算法可以提高编程能力,解决复杂的计算问题。与此同时,算法是计算机科学中的核心概念,对于程序员来说,掌握一些基本的算法是非常重要的。
53 1
|
7月前
|
算法 JavaScript 程序员
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
38 0
|
8月前
|
机器学习/深度学习 人工智能 算法
每个程序员都应该知道的 40 个算法(四)(3)
每个程序员都应该知道的 40 个算法(四)
51 2
|
8月前
|
机器学习/深度学习 算法 数据挖掘
每个程序员都应该知道的 40 个算法(四)(4)
每个程序员都应该知道的 40 个算法(四)
53 1
|
8月前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
12天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
145 80

热门文章

最新文章