算法强化 —— XGBoost(三)

本文详细介绍了XGBoost中如何处理缺失值,包括将其视为有效值或稀疏特征的策略。此外,还探讨了XGBoost的优化方法,如预排序以减少排序时间,通过column block数据结构提升缓存命中率,以及针对大数据集的out of core处理技术,以应对超过内存容量的情况。
摘要由CSDN通过智能技术生成

缺失值处理

真实场景中,有很多可能导致产生稀疏。如:数据缺失、某个特征上出现很多0项、人工进行one-hot编码导致大量的0
理论上,数据缺失和数值0的含义是不同的,数值0是有效的
实际上,数值0的处理方式类似缺失值的处理方式,都视为稀疏特征
在xgboost中,数值0的处理方式和缺失值的处理方式是同一的。这只是一个计算上的优化,用于加速稀疏特征的处理速度
对于稀疏特征,只需要对有效值进行处理,无效值则采用默认的分裂方向。
注意每个结点的默认分裂方向可能不同。

XGBoost中实现的方式

在xgboost算法的实现中,允许对数值0进行不同的处理。可以将数值0视作缺失值,也可以将其视作有效值。
如果数值0是有真实意义的,则建议将其视作有效值。

缺失值处理算法

输入:数据集 D = ( x 1 → , y 1 ~ ) , ( x 2 → , y 2 ~ ) , . . . , ( x N → , y N ~ ) D = {(\overrightarrow{x_1},\tilde{y_1}),(\overrightarrow{x_2},\tilde{y_2}),...,(\overrightarrow{x_N},\tilde{y_N})} D=(x1 ,y1~),(x2 ,y2~),...,(xN ,yN~),其中样本 x i → = ( x i , 1 , x i , 2 , . . . , x i , n ) T \overrightarrow{x_i} = (x_{i,1},x_{i,2},...,x_{i,n})^T xi =(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值