GBDT模型学习
2024-07-09 13:47:38 5 举报
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 条评论
下一页