GBDT模型学习
2024-07-09 13:47:38   7  举报             
     
         
 AI智能生成
  GBDT(Gradient Boosting Decision Tree)模型是一种基于决策树算法的集成学习方法,主要用于回归和分类任务。GBDT模型通过迭代地训练决策树,然后将所有树的预测结果相加得到最终的预测结果。在每次迭代中,新的决策树会尝试纠正之前树的预测错误,从而提升整体的预测性能。GBDT模型的特点包括:鲁棒性强,可以处理非线性数据和特征之间的相互作用,以及可以自动进行特征选择和降维。GBDT模型的训练过程包括:初始化一个常数值作为预测结果,然后迭代地对每个训练样本进行预测,并计算损失函数,最后使用梯度提升算法训练决策树,以最小化损失函数。GBDT模型在许多领域都有广泛的应用,如广告点击率预测、信用评分、疾病预测等。
    作者其他创作
 大纲/内容
  XGBoost
自动学习缺失值策略
显性正则化控制
特征复杂
可解释性
    自动学习缺失值策略
显性正则化控制
特征复杂
可解释性
 核心原理    
     损失函数
    
     XGBoost使用泰勒展开式对损失函数进行近似,通常到二阶,这有助于更精确地逼近最优解  
     正则化项:为了防止过拟合,XGBoost引入了正则化项,该项考虑了模型的复杂度,包括叶子节点的数量和叶子节点的分数。  
     目标函数:XGBoost的目标函数是损失函数和正则化项的加权和,通过优化此目标函数来构建模型。  
     模型更新:采用贪婪算法逐步构建树模型,每一步迭代都会学习一个新的树模型以减小目标函数。  
     特点    
     高效的并行化处理:XGBoost能够有效地利用多核处理器进行并行计算,加速模型训练过程。  
     支持多种损失函数和自定义评价指标:适合多种类型的问题。  
     灵活性强:支持多种参数调整,以适应不同的数据集和问题。  
     LightGBM
适用于大规模数据集
大量类别特征
    
    适用于大规模数据集
大量类别特征
 核心原理    
     直方图算法:LightGBM使用直方图算法来加速寻找最佳分枝点的过程,相比于传统的预排序算法,它更加高效且节省内存。  
     Leaf-wise生长策略:与传统的Level-wise(XGBoost)生长策略不同,LightGBM使用Leaf-wise策略,
这意味着每次选择当前损失最大的叶子节点进行分裂,从而得到更好的精度,通常能够更快地找到最优的分裂点。
但为了防止过拟合,LightGBM在Leaf-wise之上增加了一个最大深度的限制。
  
    这意味着每次选择当前损失最大的叶子节点进行分裂,从而得到更好的精度,通常能够更快地找到最优的分裂点。
但为了防止过拟合,LightGBM在Leaf-wise之上增加了一个最大深度的限制。
 特点    
     训练速度快:特别是在处理大数据集时,其训练速度远超其他GBDT工具。  
     内存占用低:通过直方图算法和特征捆绑技术,降低了内存使用。
  
     精度高:由于采用Leaf-wise生长策略,能够在相同分裂次数下获得更低的误差。  
     CatBoost
专注于处理分类问题
    
    专注于处理分类问题
 核心原理    
     类别型特征处理:CatBoost擅长处理类别型特征,可以直接传入类别型特征的列标识,模型会自动对其进行独热编码或类似的编码方法。  
     目标变量预测偏移:为了解决梯度偏差和预测偏移问题,CatBoost使用了一种特殊的算法来为每个样本计算一个权重,该权重用于在训练过程中调整目标变量的预测值。  
     特点    
     支持类别型特征:无需手动进行独热编码或其他类型的预处理。  
     高效处理大规模数据集:通过优化算法和并行处理,CatBoost能够在短时间内处理大量数据。  
     高准确性:由于其独特的算法设计和对类别型特征的支持,CatBoost在许多实际问题中都表现出较高的准确性。  
     GBDT引申知识点    
     梯度提升
&梯度下降
    &梯度下降
 梯度提升(Gradient Boosting)
    
     目的    
     梯度提升是一种集成学习算法,用于构建强预测模型,通常用于分类和回归问题。  
     原理    
     通过逐步添加新的弱预测模型(通常是决策树),每个新的模型都在前一个模型的残差上进行训练,目的是最小化损失函数。  
     应用    
     用于构建预测模型,特别是在需要处理复杂数据集和提高模型性能时  
     梯度下降(Gradient Descent)    
     目的    
     梯度下降是一种用于最小化目标函数的优化算法,通常用于寻找参数的最优值,如在线性回归、逻辑回归或其他机器学习模型中。  
     原理    
     通过计算目标函数相对于参数的梯度(即导数),然后更新参数以减少误差。这个过程重复进行,直到找到一个局部最小值。  
     应用    
     主要用于参数估计和函数优化,特别是在参数数量相对较少时  
     正则化    
     L1范数(L1 norm)    
     也被称为曼哈顿距离(Manhattan distance)或绝对值范数(Absolute value norm),是向量中各个元素绝对值之和。
  
     对于一个n维向量x = [x1, x2, ..., xn],L1公式计算:
( ||x||_1 = |x_1| + |x_2| + ... + |x_n| )
    ( ||x||_1 = |x_1| + |x_2| + ... + |x_n| )
 由于其性质,L1范数在某些优化问题中会导致解向量的稀疏性,即解的许多组件为零。
这使得L1范数在特征选择和稀疏表示中特别有用。
  
    这使得L1范数在特征选择和稀疏表示中特别有用。
 常用于Lasso正则化,可以用于特征选择  
     L2范数(L2 norm)    
     也被称为欧几里得范数(Euclidean norm)或模长(Magnitude),是向量各个元素平方和的平方根。  
     对于同一个n维向量x,其L2范数定义为:
( ||x||_2 = \sqrt{|x_1|^2 + |x_2|^2 + ... + |x_n|^2} )
    ( ||x||_2 = \sqrt{|x_1|^2 + |x_2|^2 + ... + |x_n|^2} )
 L2范数:对异常值更敏感。  
     L2范数通常更容易求解,尤其是当使用像梯度下降这样的优化算法时。  
     L2范数:常用于Ridge正则化,有助于防止模型过拟合。  
     损失函数
&目标函数
    &目标函数
 定义    
     损失函数:
损失函数用于衡量模型预测值与真实值之间的差异。
在XGBoost中,损失函数通常用于评估模型在单个样本上的预测误差。
    
    损失函数用于衡量模型预测值与真实值之间的差异。
在XGBoost中,损失函数通常用于评估模型在单个样本上的预测误差。
 常见损失函数:
1. 回归常用:
1.1 均方误差(Mean Squared Error, MSE):
用于回归问题,计算预测值与实际值差的平方的平均值。
1.2 绝对误差(Mean Absolute Error, MAE):
计算预测值与实际值差的绝对值的平均值,常用于回归问题。
2. 分类常用:
2.1 交叉熵损失(Cross-Entropy Loss):
其中, 是真实类别数量, 是真实标签的独热编码, 是模型预测属于第  类的概率。
2.2 对数损失(Log Loss) 或 对数似然损失(Log-Likelihood Loss):
与交叉熵损失相似,通常用于二分类问题。
其中, 是二进制标签(0或1), 是模型预测的概率。
2.3 Hinge损失(Hinge Loss):
用于支持向量机(SVM),用于分类问题。
其中, 是样本的特征向量, 是样本的标签。
                                              
    1. 回归常用:
1.1 均方误差(Mean Squared Error, MSE):
用于回归问题,计算预测值与实际值差的平方的平均值。
1.2 绝对误差(Mean Absolute Error, MAE):
计算预测值与实际值差的绝对值的平均值,常用于回归问题。
2. 分类常用:
2.1 交叉熵损失(Cross-Entropy Loss):
其中, 是真实类别数量, 是真实标签的独热编码, 是模型预测属于第  类的概率。
2.2 对数损失(Log Loss) 或 对数似然损失(Log-Likelihood Loss):
与交叉熵损失相似,通常用于二分类问题。
其中, 是二进制标签(0或1), 是模型预测的概率。
2.3 Hinge损失(Hinge Loss):
用于支持向量机(SVM),用于分类问题。
其中, 是样本的特征向量, 是样本的标签。
 目标函数:
如XGBoost的目标函数=损失函数+ 正则化项的加权和
目标函数优化的过程就是最小化预测误差和模型复杂度的过程。
  
    如XGBoost的目标函数=损失函数+ 正则化项的加权和
目标函数优化的过程就是最小化预测误差和模型复杂度的过程。
 类型    
     经验风险损失函数:
它表示预测结果和实际结果的差别。
在XGBoost中,这通常通过泰勒展开式(通常到二阶)来近似损失函数,以更精确地逼近最优解。
  
    它表示预测结果和实际结果的差别。
在XGBoost中,这通常通过泰勒展开式(通常到二阶)来近似损失函数,以更精确地逼近最优解。
 结构风险损失函数:
在经验风险损失函数的基础上,加上正则项,用于控制模型的复杂度。
正则项通常包括树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和等。
  
    在经验风险损失函数的基础上,加上正则项,用于控制模型的复杂度。
正则项通常包括树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和等。
 计算    
     正则化项:
正则化项用于防止过拟合,它包含了树模型的复杂度。
正则化项可以写作:其中,T是叶子节点的数量,w是叶子节点的分数,λ和γ是正则化参数。
  
    正则化项用于防止过拟合,它包含了树模型的复杂度。
正则化项可以写作:其中,T是叶子节点的数量,w是叶子节点的分数,λ和γ是正则化参数。
 泰勒展开式:
是一种数学计算方法,如XGBoost中使用泰勒展开式对损失函数进行近似计算。
对于一般的损失函数,泰勒展开式可以写作:其中,f(x)是当前模型的预测值,
g和h分别是损失函数关于预测值的一阶导数(梯度)和二阶导数(海森矩阵)。0
    是一种数学计算方法,如XGBoost中使用泰勒展开式对损失函数进行近似计算。
对于一般的损失函数,泰勒展开式可以写作:其中,f(x)是当前模型的预测值,
g和h分别是损失函数关于预测值的一阶导数(梯度)和二阶导数(海森矩阵)。0
 应用    
     模型训练:
在模型训练过程中,XGBoost通过最小化目标函数(即损失函数和正则化项的加权和)来构建最优模型。
  
    在模型训练过程中,XGBoost通过最小化目标函数(即损失函数和正则化项的加权和)来构建最优模型。
 模型评估:
损失函数也用于评估模型的性能。
损失越小,表示模型在训练集上的预测误差越小,模型的性能通常也越好。
  
    损失函数也用于评估模型的性能。
损失越小,表示模型在训练集上的预测误差越小,模型的性能通常也越好。
 损失函数选择    
     选择合适的损失函数:
不同的预测建模问题(如分类或回归)需要选择不同的损失函数。
例如,对于分类问题,常用的损失函数有softmax交叉熵损失函数;对于回归问题,常用的损失函数有均方误差损失函数。
  
    不同的预测建模问题(如分类或回归)需要选择不同的损失函数。
例如,对于分类问题,常用的损失函数有softmax交叉熵损失函数;对于回归问题,常用的损失函数有均方误差损失函数。
 调整正则化参数:
正则化参数λ和γ用于控制模型的复杂度。
通过调整这些参数,可以在模型的预测能力和复杂度之间找到平衡,以防止过拟合或欠拟合。
  
    正则化参数λ和γ用于控制模型的复杂度。
通过调整这些参数,可以在模型的预测能力和复杂度之间找到平衡,以防止过拟合或欠拟合。
 
 
 
 
  0 条评论
 下一页