catboost
Category Boosting, 对GBDT的优化实现。
1. 核心思想
CatBoost的核心思想是在GBDT的基础上进行改进,主要通过以下几方面的优化:
类别特征的高效处理:CatBoost可以直接处理类别特征,不需要进行独热编码(One-Hot
Encoding),通过统计信息和基于目标值的编码技术减少了过拟合和信息泄漏的风险。使用Ordered
Target Encoding。具体来说,假设我们正在处理一个样本 \(i\),并希望对其类别特征 \(A\) 进行目标编码。CatBoost
计算的编码是基于样本 \(i\)
之前的样本的目标变量:
\[
\text{Encoded}(A_i) = \frac{\sum_{j=1}^{i-1} y_j | A_j =
A_i}{\text{count}(A_j = A_i, j < i)}
\]
避免梯度偏差:在传统GBDT中,梯度计算可能带有偏差,而CatBoost通过引入基于排序的梯度提升方法来减少这种偏差,提升模型的泛化能力。
对称树结构:CatBoost构建对称的决策树,这意味着每个树的左右分支在相同的深度上分 ...
lightGBM
Light Gradient Boosting Machine。lightGBM 和
XGBoost一样,是对GBDT的优化实现,但比XGBoost更为优秀高效。GBDT
在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据一次性装进内存,会明显限制训练数据的大小。如果不装进内存,反复地读写训练数据又会消耗非常大的时间。XGboost中使用的精确贪心算法也同样存在这个问题。
参考资料(更加详细,有助于理解):
https://github.com/ExpressGit/NLP_Study_Demo/blob/main/ML/LightGBM.ipynb
https://www.bilibili.com/video/BV1JK4y1L7ow/?spm_id_from=333.337.search-card.all.click&vd_source=514a3ed3ac370caf4facad7d6f4e1a2d
1. 核心思想
LightGBM是一种高效的梯度提升决策树(GBDT)实现,具有独特的优化策略以应对大规模数据和高维特征的挑战。其核心思想是通过引入基于直方图 ...
Bayesian Optimization
超参数优化算法。通过构建一个代理模型(通常是高斯过程,GP)来近似目标函数,并使用该模型的预测和不确定性信息来决定下一次评估目标函数的最优位置。实际上是优化对目标函数的估计,属于序贯模型优化(SMBO)的一种。
SMBO:一类用于优化复杂、黑箱函数的策略,它通过构建代理模型来模拟目标函数,并通过不断更新模型来引导下一步的采样。
1. 基本原理
基本步骤:
初始样本选择:首先通过随机或空间填充方法选择一些样本点,评估这些点的目标函数值f(x)。
代理模型构建:基于已有的样本点,利用高斯过程构建目标函数的代理模型。高斯过程不仅可以预测目标函数的值,还能提供该预测的置信区间。
采集函数选择:贝叶斯优化使用采集函数来决定下一个需要评估的点。采集函数平衡了探索(在高不确定性区域探索可能的最优点)和利用(在已知较优区域集中评估)。
目标函数评估:根据采集函数选择的下一个点,评估目标函数,并将结果纳入已有样本集。
模型更新:更新高斯过程模型,以包括新的采样点。
重复迭代:不断重复步骤3-5,直到满足停止条件(例如达到设定的评估次数或优化精度)。
注意:在超参数优化过程中,需要定义的f(x)一半是 ...
Adaboost
Adaptive Boosting,自适应增强。
1. 核心思想
通过逐轮训练弱分类器,每一轮根据分类器的表现调整样本权重,最终将这些弱分类器进行加权组合,形成一个强分类器。弱分类器可以是任何表现略优于随机猜测的模型。
2. 算法步骤
初始化训练样本的权值分布:最开始对每个训练样本赋予相同的权重:
\[w_i^{(1)} = \frac{1}{N}, \quad
i=1,2,\dots,N\] 其中,\(N\)为训练样本的总数,\(w_i^{(1)}\)为第 \(i\)个样本在初始阶段的权重。
训练弱分类器:在每一轮迭代中,用当前的权值分布训练一个弱分类器
\(h_t\)。对于训练样本集 \(X = \{x_1, x_2, \dots, x_N\}\),若弱分类器
\(h_t\)对样本 \(x_i\)分类错误,权重 \(w_i\)就会增加;若分类正确,则 \(w_i\)减少。
计算弱分类器的误差率:分类器 \(h_t\)的分类误差率 \(\epsilon_t\)为: \[
\epsilon_t = \frac{\sum_{i=1}^{N} w_i^{(t)} \cdot \mathb ...
XGBoost
Extreme Gradient Boosting,对GBDT的优化实现。
1. 核心思想
XGBoost 继承了 GBDT
的基本思想,即通过构建多个决策树来逐步优化模型的预测能力。XGBoost
的优化改进:
损失函数的优化:XGBoost
使用二阶导数(Hessian)信息来优化损失函数,提升模型在拟合时的鲁棒性和精确度。
目标函数的优化:XGBoost
不仅考虑了损失函数,还在目标函数中加入了正则化项,用来控制模型的复杂度,防止过拟合。
1.1 level-wise
2. 算法步骤
XGBoost 的算法流程与 GBDT 类似,包含以下步骤:
初始化模型:开始时,模型初始化为常数值。通常使用目标变量的均值来初始化模型。
逐步添加树:
每一轮迭代时,基于上一轮的残差,训练一个新的回归树。
XGBoost
使用损失函数的一阶导数(梯度)和二阶导数(Hessian)来生成新树。
目标函数优化:
对每棵树,XGBoost
构建时通过最小化目标函数来决定分裂节点的最佳方式。
目标函数考虑了模型的误差和正则化项。1
加法模型:
新的决策树模型与之前的树累加,形成最终的模型。 ...
GAM
Generalized Additive Models, 广义加性模型 GAM。
通过对预测变量应用平滑函数来捕捉非线性关系。GAM
扩展了传统的线性模型,使得每个预测变量对响应变量的影响可以通过非线性函数来建模。
GLM vs. GAM -
Generalized Additive Models
1. GAM 的基本组成
广义加性模型包括以下几个主要成分:
响应变量:\(Y\)
是模型的目标变量。
预测变量:\(X = (X_1,
X_2, \ldots, X_p)\) 是自变量或特征。
平滑函数:\(f_i(X_i)\) 是每个预测变量 \(X_i\)
对响应变量的影响,通过平滑函数建模。
线性预测器:将每个预测变量的平滑函数加总起来得到模型的线性预测器。
2. GAM 的模型形式
GAM 的模型可以表示为: \[
g(\mathbb{E}[Y]) = \beta_0 + \sum_{i=1}^p f_i(X_i)
\] 其中:
\(g(\cdot)\) 是链接函数,将期望值
\(\mathbb{E}[Y]\)
与线性预测器联系起来。
\(\beta_0\) 是截距项。
\( ...
GLM
Generalized Linear Models, 广义线性模型GLM。
一类灵活的统计模型,用于处理不同类型的数据。GLM
扩展了传统的线性回归模型,允许响应变量(因变量)与预测变量(自变量)之间的关系通过各种分布来建模。GLM
主要包括线性回归、逻辑回归、泊松回归等模型。
1. GLM 的基本组成
广义线性模型由以下三部分组成:
随机成分:响应变量 \(Y\)
的分布,通常假设为指数家族分布,如正态分布、二项分布、泊松分布等。
系统成分:线性预测器 \(\eta\),即自变量的线性组合: \[
\eta = X \beta
\] 其中,\(X\) 是设计矩阵,\(\beta\) 是回归系数。
链接函数:链接函数 \(g(\cdot)\) 将线性预测器 \(\eta\) 与响应变量的期望 \(\mu\) 联系起来: \[
g(\mu) = \eta
\] 其中,\(\mu = \text{E}[Y]\)
是响应变量的期望。
2. GLM 的数学推导
2.1 随机成分
假设响应变量 \(Y\)
的分布属于指数家族分布,其概率密度函数(或质量函数)可以表示为: \[
f(y|\th ...
GBDT
Gradient boosting Decision Tree。
1. 核心思想
GBDT 是一种迭代的决策树算法,它由多棵决策树组成。GBDT
的核心在于将所有决策树的输出累加作为最终结果,因此 GBDT 中的每一棵树都是
回归树,即每棵树拟合的是之前模型的残差。每次迭代都会训练一个新的树来优化先前的误差,通过这种方式,不断提升模型的整体预测能力。
2. 算法步骤
初始化模型:使用常数函数初始化模型,比如将目标变量的均值作为初始预测值。
计算残差:对于每一个样本,计算当前模型的残差,即目标值与当前预测值的差异。
拟合残差:训练一棵决策树,使其能够拟合上一步的残差(拟合负梯度)。
更新模型:将新树的预测结果乘上学习率(缩放系数),然后将其加到当前模型的预测值中。
\[
F_m(x) = F_{m-1}(x) + \alpha h_m(x)
\]
其中,\(F_m(x)\) 表示第 \(m\) 次迭代后的模型,\(F_{m-1}(x)\) 是前一次迭代的模型,\(h_m(x)\) 是当前树的输出,\(\alpha\) 是学习率。
重复步骤
2-4:直到达到指定的迭代次数或误差收敛。 ...
GPR
Gaussian Process Regression, 高斯过程回归。
一种非参数的贝叶斯回归方法,用于建模和预测复杂的非线性函数。它利用高斯过程的先验分布来推断数据的分布,并生成预测的不确定性度量。
1. 高斯过程回归的基本概念
1.1 高斯过程
高斯过程(Gaussian Process,
GP)是一种用于定义随机函数的统计模型,它可以看作是无穷维的高斯分布。一个高斯过程可以通过其均值函数
\(m(x)\) 和协方差函数 \(k(x, x')\) 完全描述: \[
f(x) \sim \mathcal{GP}(m(x), k(x, x'))
\] 其中:
\(m(x)\) 是均值函数,表示在点 \(x\) 的预测值的期望。
\(k(x, x')\)
是协方差函数,表示在点 \(x\) 和 \(x'\) 之间的协方差。
1.2 协方差函数(核函数)
协方差函数 \(k(x, x')\)
用于定义数据点之间的相关性。常见的协方差函数包括:
平方指数核(RBF核): \[
k(x, x') = \sigma^2 \exp \left ...
SVM
Support Vector Machine.
1. 线性SVM分类原理
线性SVM分类的核心思想是找到一个超平面,将不同类别的数据点分隔开,并且尽量使得分类边界到支持向量的距离最大。线性SVM适用于数据线性可分的场景。
超平面:假设我们有一组二维数据,SVM的目标是找到一条直线来分割这组数据。在高维空间中,这条直线就是超平面,定义为:
\[
w \cdot x + b = 0
\]
其中,\(w\) 是超平面的法向量,\(x\) 是输入数据,\(b\) 是偏置。
分类边界:为了实现分类,SVM希望找到一个能最大化分类边界的超平面。理想情况下,不同类别的数据点位于超平面两侧,即:
\(w \cdot x_i + b \geq 1\)
对于正类样本
\(w \cdot x_i + b \leq -1\)
对于负类样本
边距最大化:SVM通过优化问题来最大化支持向量到超平面的边距,保证模型的泛化能力。优化问题为:
\[
\min \frac{1}{2} \|w\|^2
\]
同时满足约束条件: \[
y_i(w \cdot x_i + b) \geq 1 \quad \forall ...