当前位置: 首页> 游戏> 评测 > 可以分为()_网络营销理论基础有哪些_百度app关键词优化_营销型外贸网站建设

可以分为()_网络营销理论基础有哪些_百度app关键词优化_营销型外贸网站建设

时间:2025/7/14 21:52:23来源:https://blog.csdn.net/qq_51701007/article/details/145800387 浏览次数:0次
可以分为()_网络营销理论基础有哪些_百度app关键词优化_营销型外贸网站建设

本章节主要介绍线性回归模型的正则项

    • 知识回忆
    • 正则项
    • 线性回归中常用的正则函数(L1、L2正则)
    • 拓展知识:L1和L2正则的区别及使用方法
      • 一、L1 和 L2 正则的区别
        • (一)数学形式
        • (二)稀疏性
        • (三)对参数的影响
        • (四)优化难度
        • (五)应用场景
      • 二、L1 和 L2 正则的使用场景
        • (一)L1 正则
        • (二)L2 正则
    • LinearRegression类
      • 参数
      • 属性
      • 方法
    • 岭回归:L2正则的线性函数
      • *知识拓展:贝叶斯估计
      • 岭回归的贝叶斯估计
      • 最大后验估计 (Maximum a posteriori estimation, MAP)
      • *数据分析:特征缩放
      • *知识拓展:特征标准化和特征归一化
        • 特征标准化和归一化的区别
        • MinMaxScaler 是如何工作的?
        • 其他特征缩放方法
      • sklearn中的岭回归:Ridge
    • Lasso回归:L1正则的线性回归
      • Lasso回归的贝叶斯分布
      • 最大后验估计(Maximum a posteriori estimation, MAP)
      • sklearn中的Lasso回归:Lasso
    • 弹性网络:L1正则 + L2正则
      • Sklearn中实现的弹性网络为:ElasticNet

知识回忆

  机器学习的核心由三个要素组成:

  1. 函数集合 { f 1 , f 2 , . . . } \{f_1, f_2, ...\} {f1,f2,...}:这是一组可能的模型函数,我们希望从中找到一个能够最好地描述数据的函数。

  2. 目标函数 J ( f ) J(f) J(f):这是一个用来评估函数好坏的标准。它帮助我们判断哪个函数更符合我们的需求。

  3. 优化算法:这是一套方法,用于在函数集合中找到最佳函数。

  在回归任务中,我们使用的目标函数如下:

   J ( f , λ ) = ∑ i = 1 N L ( y ^ i , y i ) + λ R ( f ) J(f, \lambda) = \sum_{i=1}^{N} L(\hat{y}_i, y_i) + \lambda R(f) J(f,λ)=i=1NL(y^i,yi)+λR(f)

  其中, L ( y ^ i , y i ) L(\hat{y}_i, y_i) L(y^i,yi) 是损失函数,用于衡量模型预测值 y ^ i \hat{y}_i y^i 与实际值 y i y_i yi 之间的差异; R ( f ) R(f) R(f) 是正则项,用于控制模型的复杂度; λ \lambda λ 是正则化参数,用于平衡损失函数和正则项的影响。

  如果目标函数只关注模型对训练样本的拟合程度,可能会导致过拟合,即模型在训练数据上表现很好,但在新数据上表现不佳。

  抑制过拟合:为了解决这个问题,我们在目标函数中加入正则项。正则项有助于限制模型的复杂度,从而提高模型在新数据上的泛化能力。

正则项

  正则项通常与模型 f f f的复杂度有关。

  目标函数定义为:

J ( f , λ ) = ∑ i = 1 N L ( y ^ i , y i ) + λ R ( f ) J(f, \lambda) = \sum_{i=1}^{N} L(\hat{y}_i, y_i) + \lambda R(f) J(f,λ)=i=1NL(y^i,yi)+λR(f)

  其中, λ \lambda λ称为结构风险。训练集上的损失称为经验风险。

线性回归中常用的正则函数(L1、L2正则)

  在线性回归中,我们经常使用正则函数来防止模型过拟合。模型可以表示为 f ( x ) = w ⊤ x f(x) = \mathbf{w}^\top x f(x)=wx,其中正则项 R ( f ) R(f) R(f)实际上就是 R ( w ) R(\mathbf{w}) R(w),即模型参数 w \mathbf{w} w的正则化。

  常用的正则函数包括:

  • L2正则 R ( w ) = ∥ w ∥ 2 2 = ∑ j = 1 D w j 2 R(\mathbf{w}) = \|\mathbf{w}\|_2^2 = \sum_{j=1}^{D} w_j^2 R(w)=w22=j=1Dwj2
  • L1正则 R ( w ) = ∥ w ∥ 1 = ∑ j = 1 D ∣ w j ∣ R(\mathbf{w}) = \|\mathbf{w}\|_1 = \sum_{j=1}^{D} |w_j| R(w)=w1=j=1Dwj

  其中, w \mathbf{w} w为模型参数, D D D为参数的维数。

  需要注意的是,正则项不对截距项进行惩罚,因为截距项不影响模型的复杂度。正则化的主要目的是控制模型权重的大小,从而避免过拟合。

  此外,正则化有助于提高模型的平滑程度。函数的平滑程度可以通过 Δ x → Δ y \Delta x \rightarrow \Delta y ΔxΔy来表示,其中:

Δ y = f ( x + Δ x ) − f ( x ) = ( w ⊤ ( x + Δ x ) + b ) − ( w ⊤ x + b ) = w ⊤ Δ x \Delta y = f(x + \Delta x) - f(x) = (\mathbf{w}^\top (x + \Delta x) + b) - (\mathbf{w}^\top x + b) = \mathbf{w}^\top \Delta x Δy=f(x+Δx)f(x)=(w(x+Δx)+b)(wx+b)=wΔx
  由于线性回归模型相对简单,当我们确定不需要正则化时,可以省略正则项。在这种情况下,目标函数简化为:

J ( w ) = ∑ i = 1 N L ( f ( x i , w ) , y i ) = ∑ i = 1 N ( f ( x i , w ) − y i ) 2 = ∥ X w − y ∥ 2 2 J(\mathbf{w}) = \sum_{i=1}^{N} L(f(\mathbf{x}_i, \mathbf{w}), y_i) = \sum_{i=1}^{N} (f(\mathbf{x}_i, \mathbf{w}) - y_i)^2 = \|\mathbf{Xw} - \mathbf{y}\|_2^2 J(w)=i=1NL(f(xi,w),yi)=i=1N(f(xi,w)yi)2=Xwy22

  这里, J ( w ) J(\mathbf{w}) J(w)是损失函数, X \mathbf{X} X是特征矩阵, w \mathbf{w} w是模型参数, y \mathbf{y} y是目标向量。这个目标函数实际上是最小化预测值和真实值之间的平方误差之和。

  在Scikit-Learn库中,实现的最小二乘线性回归模型为LinearRegression类。这个类提供了一种简单有效的方式来拟合线性模型,无需担心正则化问题,因为默认情况下不包含正则项。

拓展知识:L1和L2正则的区别及使用方法

一、L1 和 L2 正则的区别

  在机器学习中,L1 和 L2 正则化是两种常用的正则化方法,它们的主要目的是防止模型过拟合。尽管它们的目标相似,但在数学形式、特性以及应用场景上存在显著区别。本文将详细介绍它们的区别,并探讨它们的使用场景。

(一)数学形式

  L1 和 L2 正则化的核心区别在于它们对模型参数的惩罚方式不同。

  • L1 正则:通过在损失函数中加入参数的绝对值之和来实现正则化,具体形式为: λ ∑ i ∣ w i ∣ \lambda \sum_{i} |w_i| λiwi 其中, λ \lambda λ 是正则化系数,用于控制正则化的强度。

  • L2 正则:则是通过在损失函数中加入参数的平方和来实现正则化,具体形式为: λ 2 ∑ i w i 2 \frac{\lambda}{2} \sum_{i} w_i^2 2λiwi2 与 L1 正则类似, λ \lambda λ 也是正则化系数。

(二)稀疏性

  L1 和 L2 正则化在稀疏性方面的表现截然不同。

  • L1 正则:倾向于产生稀疏解,即某些参数会被直接压缩为零。这意味着 L1 正则化可以通过将不重要的特征权重置为零,实现特征选择的效果。例如,在高维数据中,L1 正则化可以帮助我们筛选出真正有用的特征,从而简化模型。

  • L2 正则:不会产生零参数,而是使所有参数的值变得较小。L2 正则化的目标是让模型的参数更加平滑,从而减少模型的复杂度。

(三)对参数的影响

  L1 和 L2 正则化对参数的具体影响也有所不同。

  • L1 正则:对参数的绝对值进行惩罚,但不会改变参数的符号。这种惩罚方式使得 L1 正则化在特征选择时更加“果断”,直接将不重要的特征权重置为零。

  • L2 正则:对参数的平方进行惩罚,限制参数的大小。这种惩罚方式使得 L2 正则化更倾向于让所有参数都保持较小的值,从而使模型更加平滑。

(四)优化难度

  L1 和 L2 正则化在优化过程中的难度也有所不同。

  • L1 正则:由于其惩罚项是参数的绝对值,因此在某些点上不可导(例如当参数为零时)。这使得 L1 正则化的优化过程相对复杂。

  • L2 正则:由于其惩罚项是参数的平方,因此是一个二次函数,处处可导。这使得 L2 正则化的优化过程相对简单。

(五)应用场景

  L1 和 L2 正则化在实际应用中的选择取决于具体问题的需求。

  • L1 正则:适用于特征选择任务,尤其是当数据集具有高维稀疏特征时。例如,在文本分类任务中,数据通常具有高维稀疏性,L1 正则化可以帮助我们选择出对分类最有帮助的词汇。

  • L2 正则:适用于需要平滑输出的任务,如回归分析、图像处理等。例如,在房价预测任务中,L2 正则化可以帮助我们避免模型对某些特征过度拟合,从而提高模型的泛化能力。

二、L1 和 L2 正则的使用场景

(一)L1 正则

  L1 正则化的主要优势在于其稀疏性,这使得它在以下场景中表现出色:

  • 特征选择:当数据集中的特征数量远多于样本数量时,L1 正则化可以通过将不重要的特征权重置为零,帮助我们选择出最有用的特征。

  • 稀疏编码:在图像处理和语音识别等领域,L1 正则化可以用于学习稀疏表示。例如,在图像压缩任务中,L1 正则化可以帮助我们提取出图像中最关键的特征,从而实现高效的压缩。

(二)L2 正则

  L2 正则化的主要优势在于其平滑性,这使得它在以下场景中表现出色:

  • 回归任务:例如岭回归(Ridge Regression),L2 正则化通过限制参数的大小,减少参数估计的方差,从而提高模型的稳定性和泛化能力。

  • 处理多重共线性:当特征之间存在高度相关性时,L2 正则化可以减小模型方差,避免模型对某些特征过度依赖。   总之,L1 正则化和 L2 正则化都是强大的正则化工具,但它们各有优势。如果需要进行特征选择,L1
    正则化是更好的选择;如果需要平滑模型输出,L2 正则化则更为合适。在实际应用中,我们可以根据具体问题的需求,灵活选择合适的正则化方法。

LinearRegression类

  LinearRegressionsklearn.linear_model 模块中的一个类,用于实现线性回归。其目标函数为最小化预测值和真实值之间的平方误差之和,即:

J ( w ) = ∥ X w − y ∥ 2 2 J(\mathbf{w}) = \|\mathbf{Xw} - \mathbf{y}\|_2^2 J(w)=Xwy22

参数

参数说明备注
fit_intercept模型中是否包含截距项。如果数据已经中心化(训练样本集的 y y y的均值为0),可设置为False
normalize是否对输入特征 X X X做归一化(减去均值,除以L2模),使得每个样本的模长为1。对数据进行归一化会使得超参数学习更鲁棒,且几乎和样本数目没有关系。回归中用的不多,更多的时候用标准化。
copy_X是否拷贝数据 X X X。设置为False时, X X X会被重写覆盖。
n_jobs并行计算时使用CPU的数目。-1表示使用所有的CPU资源(建议与设置为CPU核的数目相同,现在CPU基本上都支持超线程,-1可能对应的是超线程后的值,最好设置为CPU核的数目)。

属性

属性说明备注
coef_回归系数/权重,与特征维数相同。对多任务回归,标签 y y y为二维数组,则回归系数也是二维数组。
intercept_截距项。

方法

方法说明备注
fit(X, y[, sample_weight])模型训练。 X , y X, y X,y为训练数据,可设置每个样本的权重sample_weight如果样本来自不同设备(如精度不同),可设置样本权重。
predict(X)使用训练好的模型进行预测,返回预测值
score(X, y[, sample_weight])评估模型预测性能,返回模型预测的 R 2 R^2 R2分数(预测值和真实值 y y y的差异)。请见回归模型评价指标部分。

岭回归:L2正则的线性函数

  当损失函数取L2损失时,表示为: L ( f ( x i , w ) , y i ) = ( f ( x i , w ) − y i ) 2 L(f(x_i, w), y_i) = (f(x_i, w) - y_i)^2 L(f(xi,w),yi)=(f(xi,w)yi)2

  正则项取L2正则,表示为: R ( w ) = ∑ j = 1 D w j 2 R(w) = \sum_{j=1}^{D} w_j^2 R(w)=j=1Dwj2

  线性回归模型定义为: f ( x ; w ) = w T x = ∑ j = 0 D w j x j ( x 0 = 1 ) f(x; w) = w^T x = \sum_{j=0}^{D} w_j x_j \quad (x_0 = 1) f(x;w)=wTx=j=0Dwjxj(x0=1)

  得到岭回归的目标函数为:

J ( w , λ ) = ∑ i = 1 N L ( f ( x i , w ) , y i ) + λ R ( w ) = ∑ i = 1 N ( w T x i − y i ) 2 + λ ∑ j = 1 D w j 2 J(w, \lambda) = \sum_{i=1}^{N} L(f(x_i, w), y_i) + \lambda R(w) = \sum_{i=1}^{N} (w^T x_i - y_i)^2 + \lambda \sum_{j=1}^{D} w_j^2 J(w,λ)=i=1NL(f(xi,w),yi)+λR(w)=i=1N(wTxiyi)2+λj=1Dwj2

  进一步展开为:

= ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 2 2 = ( X w − y ) T ( X w − y ) + λ w T w = \|Xw - y\|_2^2 + \lambda \|w\|_2^2 = (Xw - y)^T(Xw - y) + \lambda w^T w =Xwy22+λw22=(Xwy)T(Xwy)+λwTw

  以上就是岭回归(Ridge Regression)的基本构建过程。岭回归是一种线性回归的变体,它通过在损失函数中加入一个正则项来防止模型过拟合。具体来说:

  1. 损失函数:我们使用L2损失,也就是平方误差损失,来衡量模型预测值与真实值之间的差距。损失函数的形式是 ( f ( x i , w ) − y i ) 2 (f(x_i, w) - y_i)^2 (f(xi,w)yi)2,其中 f ( x i , w ) f(x_i, w) f(xi,w)是模型的预测值, y i y_i yi是真实值。
  2. 正则项:为了防止模型过拟合,我们引入了L2正则项,即权重系数的平方和。正则项的形式是 ∑ j = 1 D w j 2 \sum_{j=1}^{D} w_j^2 j=1Dwj2,其中 w j w_j wj是模型的权重系数, D D D是特征的维度。
  3. 线性回归模型:模型的预测函数定义为 f ( x ; w ) = w T x f(x; w) = w^T x f(x;w)=wTx,其中 w T x w^T x wTx表示权重向量 w w w与特征向量 x x x的点积。这里假设特征向量 x x x的第一个元素是1,以便于包含截距项。
  4. 岭回归的目标函数:岭回归的目标函数是损失函数和正则项的和,形式为 J ( w , λ ) = ∑ i = 1 N ( w T x i − y i ) 2 + λ ∑ j = 1 D w j 2 J(w, \lambda) = \sum_{i=1}^{N} (w^T x_i - y_i)^2 + \lambda \sum_{j=1}^{D} w_j^2 J(w,λ)=i=1N(wTxiyi)2+λj=1Dwj2,其中 λ \lambda λ是正则化参数,用于控制正则项的强度。

  通过最小化这个目标函数,我们可以找到最优的权重系数 w w w,从而得到一个既能拟合数据又不会过拟合的模型。

  岭回归的目标函数定义为 J ( w , λ ) = ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 2 2 J(w, \lambda) = \|Xw - y\|_2^2 + \lambda \|w\|_2^2 J(w,λ)=Xwy22+λw22

  L2正则化可以视为参数先验分布为正态分布的贝叶斯估计方法。

*知识拓展:贝叶斯估计

  • 数据的似然: ℓ ( f ) = ln ⁡ p ( D ∣ θ ) = ∑ i = 1 N ln ⁡ p ( y i ∣ x i ) \ell(f) = \ln p(\mathcal{D}|\theta) = \sum_{i=1}^{N} \ln p(y_i|x_i) (f)=lnp(Dθ)=i=1Nlnp(yixi)
  • 参数的先验: p ( θ ) p(\theta) p(θ)
  • 参数的后验: p ( θ ∣ D ) ∝ p ( θ ) p ( D ∣ θ ) p(\theta|\mathcal{D}) \propto p(\theta)p(\mathcal{D}|\theta) p(θD)p(θ)p(Dθ)
  • 参数的最大后验估计: θ ^ = arg ⁡ max ⁡ θ p ( θ ∣ D ) \hat{\theta} = \arg\max_{\theta} p(\theta|\mathcal{D}) θ^=argmaxθp(θD)

  在这段内容中,我们讨论了岭回归的目标函数以及它与贝叶斯估计之间的关系。岭回归通过在目标函数中加入L2正则化项来控制模型的复杂度,这可以看作是在贝叶斯框架下,假设参数的先验分布为正态分布时进行的估计。

  贝叶斯估计是一种统计方法,它允许我们在已有先验知识的基础上,通过观察数据来更新对参数的信念。具体来说:

  1. 数据的似然:表示在给定参数 θ \theta θ的情况下,观测到数据 D \mathcal{D} D的概率。在回归问题中,这通常表示为每个数据点 ( x i , y i ) (x_i, y_i) (xi,yi)的预测值与真实值之间的似然的乘积。

  2. 参数的先验:表示在观察数据之前,我们对参数 θ \theta θ的先验信念。在贝叶斯统计中,先验可以基于以往的经验或领域知识。

  3. 参数的后验:表示在观察数据之后,我们对参数 θ \theta θ的新的信念。后验概率与先验概率和似然函数的乘积成正比。

  4. 参数的最大后验估计:找到使后验概率最大的参数值,这是贝叶斯估计中的一种常见做法,它提供了参数的一个点估计。

岭回归的贝叶斯估计

  岭回归的贝叶斯估计

  • 数据的似然: ℓ ( f ) = ∑ i = 1 N ln ⁡ p ( y i ∣ x i ) − N 2 log ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 \ell(f) = \sum_{i=1}^{N} \ln p(y_i|x_i) - \frac{N}{2} \log(2\pi) - N\ln\sigma - \sum_{i=1}^{N} \frac{(y_i - f(x_i))^2}{2\sigma^2} (f)=i=1Nlnp(yixi)2Nlog(2π)Nlnσi=1N2σ2(yif(xi))2

  • 参数的先验:假设 w j ∼ N ( 0 , τ 2 ) w_j \sim N(0, \tau^2) wjN(0,τ2),且 w j w_j wj 相互独立,则
    p ( w ) = ∏ j = 1 D p ( w j ) = ∏ j = 1 D 1 2 π τ exp ⁡ ( − w j 2 2 τ 2 ) p(w) = \prod_{j=1}^{D} p(w_j) = \prod_{j=1}^{D} \frac{1}{\sqrt{2\pi\tau}} \exp\left(-\frac{w_j^2}{2\tau^2}\right) p(w)=j=1Dp(wj)=j=1D2πτ 1exp(2τ2wj2)

  • 参数的后验: ln ⁡ p ( w ∣ D ) ∝ ln ⁡ p ( w ) + ln ⁡ p ( D ∣ w ) \ln p(w|\mathcal{D}) \propto \ln p(w) + \ln p(\mathcal{D}|w) lnp(wD)lnp(w)+lnp(Dw)
    = − D 2 ln ⁡ ( 2 π ) − D ln ⁡ τ − ∑ j = 1 D w j 2 2 τ 2 − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 = -\frac{D}{2}\ln(2\pi) - D\ln\tau - \sum_{j=1}^{D} \frac{w_j^2}{2\tau^2} - \frac{N}{2}\ln(2\pi) - N\ln\sigma - \sum_{i=1}^{N} \frac{(y_i - f(x_i))^2}{2\sigma^2} =2Dln(2π)Dlnτj=1D2τ2wj22Nln(2π)Nlnσi=1N2σ2(yif(xi))2

在这段内容中,我们详细解释了岭回归在贝叶斯估计框架下的处理方式。贝叶斯估计是一种统计方法,它允许我们在已有先验知识的基础上,通过观察数据来更新对参数的信念。具体来说:

  1. 数据的似然:表示在给定模型参数的情况下,观测到数据的概率。在岭回归中,我们假设数据的误差服从正态分布,因此似然函数可以表示为正态分布的概率密度函数。

  2. 参数的先验:在贝叶斯统计中,我们对模型参数的先验信念。在这里,我们假设参数 w j w_j wj 服从均值为0,方差为 τ 2 \tau^2 τ2 的正态分布,并且各个参数之间相互独立。

  3. 参数的后验:表示在观察数据之后,我们对参数的新的信念。后验概率与先验概率和似然函数的乘积成正比。通过计算后验概率,我们可以得到参数的估计值。

通过这种方式,岭回归不仅能够拟合数据,还能通过正则化项控制模型的复杂度,从而避免过拟合。这种方法在实际应用中非常有效,特别是在处理高维数据时。
在这里插入图片描述

最大后验估计 (Maximum a posteriori estimation, MAP)

目标是找到参数 w w w使得后验概率 p ( w ∣ D ) p(w|\mathcal{D}) p(wD)最大化,即:
w ^ = arg ⁡ max ⁡ w ln ⁡ p ( w ∣ D ) \hat{w} = \arg\max_{w} \ln p(w|\mathcal{D}) w^=argwmaxlnp(wD)

展开后得到:
= arg ⁡ max ⁡ w ( − D 2 ln ⁡ ( 2 π ) − D ln ⁡ τ − ∑ j = 1 D w j 2 2 τ 2 − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 ) = \arg\max_{w} \left( -\frac{D}{2}\ln(2\pi) - D\ln\tau - \sum_{j=1}^{D} \frac{w_j^2}{2\tau^2} - \frac{N}{2}\ln(2\pi) - N\ln\sigma - \sum_{i=1}^{N} \frac{(y_i - f(x_i))^2}{2\sigma^2} \right) =argwmax(2Dln(2π)Dlnτj=1D2τ2wj22Nln(2π)Nlnσi=1N2σ2(yif(xi))2)

去掉与 w w w无关的项后,得到:
= arg ⁡ max ⁡ w ( − ∑ j = 1 D w j 2 2 τ 2 − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 ) = \arg\max_{w} \left( -\sum_{j=1}^{D} \frac{w_j^2}{2\tau^2} - \sum_{i=1}^{N} \frac{(y_i - f(x_i))^2}{2\sigma^2} \right) =argwmax(j=1D2τ2wj2i=1N2σ2(yif(xi))2)

进一步化简,乘以 2 σ 2 2\sigma^2 2σ2,得到:
= arg ⁡ min ⁡ w ( σ 2 τ 2 ∑ j = 1 D w j 2 + ∑ i = 1 N ( y i − w T x i ) 2 ) = \arg\min_{w} \left( \frac{\sigma^2}{\tau^2} \sum_{j=1}^{D} w_j^2 + \sum_{i=1}^{N} (y_i - w^T x_i)^2 \right) =argwmin(τ2σ2j=1Dwj2+i=1N(yiwTxi)2)

  等价于岭回归的目标函数(去掉负号,取最大变成取最小):
J ( w , λ ) = ( X w − y ) T ( X w − y ) + λ w T w J(w, \lambda) = (Xw - y)^T(Xw - y) + \lambda w^T w J(w,λ)=(Xwy)T(Xwy)+λwTw

在这段内容中,我们介绍了最大后验估计(MAP)在岭回归中的应用。最大后验估计是一种在贝叶斯统计中常用的参数估计方法,它通过最大化后验概率来找到最优的参数值。

  1. 最大后验估计的定义:我们希望找到参数 w w w,使得在给定数据 D \mathcal{D} D的情况下,后验概率 p ( w ∣ D ) p(w|\mathcal{D}) p(wD)最大化。

  2. 化简过程:通过去掉与 w w w无关的项,我们可以将问题简化为一个优化问题。这个优化问题的目标是最小化一个包含数据误差项和正则化项的函数。

  3. 等价于岭回归:最终,我们发现这个优化问题等价于岭回归的目标函数。岭回归通过在损失函数中加入一个正则化项来防止模型过拟合,从而提高模型的泛化能力。
      通过最大后验估计,我们可以在贝叶斯框架下对岭回归进行理解和推导,这为我们提供了一种更加严谨和全面的方法来处理线性回归问题。

*数据分析:特征缩放

  在正则化项中,各特征的参数地位相同,这就要求各特征的单位相同,这可以通过对特征进行缩放(去量纲)来实现。

  最常用的特征缩放方法是特征标准化。

  • sklearn中的实现StandardScaler

    特征标准化的公式如下:
    μ j = 1 N ∑ i = 0 N x i j \mu_j = \frac{1}{N} \sum_{i=0}^{N} x_{ij} μj=N1i=0Nxij
    σ j = 1 N − 1 ( ∑ i = 0 N ( x i j − μ j ) 2 ) \sigma_j = \sqrt{\frac{1}{N-1} \left( \sum_{i=0}^{N} (x_{ij} - \mu_j)^2 \right)} σj=N11(i=0N(xijμj)2)
    其中, μ j \mu_j μj 是特征 j j j 的均值, σ j \sigma_j σj 是特征 j j j 的标准差。

    标准化后的每个特征值 x i j ′ x'_{ij} xij 计算公式为:
    x i j ′ = x i j − μ j σ j x'_{ij} = \frac{x_{ij} - \mu_j}{\sigma_j} xij=σjxijμj
    在这里插入图片描述

  亦可采用 MinMaxScaler 将特征缩放到 [ 0 , 1 ] [0, 1] [0,1]

  数据标准化代码示例

from sklearn.preprocessing import StandardScaler
# 构造输入特征的标准化器
ss_X = StandardScaler()
# 分别对训练和测试数据的特征进行标准化处理
X_train = ss_X.fit_transform(X_train)
X_test = ss_X.transform(X_test)

*知识拓展:特征标准化和特征归一化

特征标准化和归一化的区别

  特征标准化(Standardization)和归一化(Normalization)是两种常见的特征缩放技术,它们在数据处理中扮演着重要的角色。以下是它们的主要区别:

  1. 特征标准化

    • 目标:将特征的均值转换为0,标准差转换为1。
    • 处理方式:通过减去均值并除以标准差来实现。
    • 数学公式 x ′ = ( x − μ ) σ x' = \frac{(x - \mu)}{\sigma} x=σ(xμ),其中 μ \mu μ 是原始数据的均值, σ \sigma σ 是原始数据的标准差。
    • 结果:标准化后的数据遵循标准正态分布,即均值为0,标准差为1。
  2. 特征归一化

    • 目标:将特征的值缩放到一个特定的范围,通常是[0, 1]或[-1, 1]。
    • 处理方式:通过减去最小值并除以最大值与最小值的差来实现。
    • 数学公式 x ′ = ( x − min ⁡ ( x ) ) ( max ⁡ ( x ) − min ⁡ ( x ) ) x' = \frac{(x - \min(x))}{(\max(x) - \min(x))} x=(max(x)min(x))(xmin(x)),其中 min ⁡ ( x ) \min(x) min(x) max ⁡ ( x ) \max(x) max(x) 分别是原始数据的最小值和最大值。
    • 结果:归一化后的数据范围固定,但分布形状可能与原始数据不同。
MinMaxScaler 是如何工作的?

  MinMaxScalerscikit-learn 库中的一种特征缩放方法,它通过以下步骤工作:

  1. 计算最小值和最大值:首先计算每个特征的最小值和最大值。
  2. 缩放特征:然后,对于每个特征值,使用以下公式进行缩放: x ′ = ( x − min ⁡ ( x ) ) ( max ⁡ ( x ) − min ⁡ ( x ) ) × ( max − min ) + min x' = \frac{(x - \min(x))}{(\max(x) - \min(x))} \times (\text{max} - \text{min}) + \text{min} x=(max(x)min(x))(xmin(x))×(maxmin)+min 其中, max \text{max} max min \text{min} min 是目标范围的上界和下界,默认为[0,1]。
  3. 应用缩放:最后,将这个缩放公式应用到所有特征上。

  MinMaxScaler可以确保所有特征值都落在指定的范围内,这在某些算法中(如基于梯度的优化算法)可能非常有用,因为它可以加快收敛速度。

其他特征缩放方法

  除了标准化和归一化,还有其他一些特征缩放方法:

  1. RobustScaler

  • 类似于标准化,但是使用分位数范围(IQR,即四分位数间距)来计算缩放因子,这使得缩放对异常值更加鲁棒。

  2. MaxAbsScaler

  • 通过每个特征的最大绝对值进行缩放,使得所有特征的值都在[-1, 1]范围内。

  3. Logarithmic Transformation

  • 对特征值取对数,这可以减小特征值之间的差异,特别是当特征值跨越多个数量级时。

  4. Square Root Transformation

  • 对特征值取平方根,这可以帮助减小特征值之间的差异,同时保持较大的特征值相对较大。

  5. Box-Cox Transformation

  • 一种更复杂的变换方法,可以处理正值特征,通过选择合适的参数来优化特征的分布。

  选择合适的特征缩放方法取决于数据的特性和所使用的机器学习算法。不同的缩放方法可能会对模型的性能产生显著影响。

sklearn中的岭回归:Ridge

scikit-learn库中,岭回归可以通过Ridge类实现。以下是Ridge类的构造函数及其参数说明:

class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None)

  参数说明

  • alpha:正则化强度的倒数,即目标函数 J ( w , λ ) = ( X w − y ) T ( X w − y ) + λ w T w J(w, \lambda) = (Xw - y)^T(Xw - y) + \lambda w^Tw J(w,λ)=(Xwy)T(Xwy)+λwTw 中的 λ \lambda λ
  • fit_interceptnormalizecopy_X:这些参数的含义与LinearRegression类相同。
  • max_iter:最大迭代次数,如果为None,则由solver决定。
  • tol:优化算法的容忍度,即当优化的改进小于这个值时停止迭代。
  • solver:用于解决优化问题的算法,可以是’auto’、‘svd’、‘cholesky’、‘lsqr’或’sparse_cg’。
  • random_state:随机数生成器的种子,仅当solver为’sparse_cg’时使用。

  属性和方法

  • 属性同LinearRegression
  • 常用方法同LinearRegression

岭回归通过在损失函数中加入一个正则化项来防止模型过拟合,从而提高模型的泛化能力。在scikit-learn中,Ridge类提供了一个简单而强大的工具来实现这一目标。通过调整alpha参数,你可以控制正则化的强度,从而找到最佳的模型复杂度和泛化性能之间的平衡。

Lasso回归:L1正则的线性回归

  在机器学习中,损失函数和正则化项是构建模型时非常重要的组成部分。以下是关于L2损失和L1正则化的一个简要介绍:

  当损失函数取L2损失时,其表达式为:
L ( f ( x i ; w ) , y i ) = ( f ( x i , w ) − y i ) 2 L(f(x_i; w), y_i) = (f(x_i, w) - y_i)^2 L(f(xi;w),yi)=(f(xi,w)yi)2

  正则项取L1正则,其定义为:
R ( w ) = ∑ j = 1 D ∣ w j ∣ R(w) = \sum_{j=1}^D |w_j| R(w)=j=1Dwj

  线性回归模型可以表示为:
f ( x , w ) = w T x = ∑ j = 0 D w j x j ( x 0 = 1 ) f(x, w) = w^T x = \sum_{j=0}^D w_j x_j \quad (x_0 = 1) f(x,w)=wTx=j=0Dwjxj(x0=1)

  通过结合L2损失和L1正则,我们可以得到Lasso(最小绝对收缩和选择算子)的目标函数:
J ( w , λ ) = ∑ i = 1 N L ( f ( x i , w ) , y i ) + λ R ( w ) = ∑ i = 1 N ( w T x i − y i ) 2 + λ ∑ j = 1 D ∣ w j ∣ J(w, \lambda) = \sum_{i=1}^N L(f(x_i, w), y_i) + \lambda R(w) = \sum_{i=1}^N (w^T x_i - y_i)^2 + \lambda \sum_{j=1}^D |w_j| J(w,λ)=i=1NL(f(xi,w),yi)+λR(w)=i=1N(wTxiyi)2+λj=1Dwj
= ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 1 = \|Xw - y\|_2^2 + \lambda \|w\|_1 =Xwy22+λw1

  Lasso回归是一种流行的线性模型,它通过引入L1正则化来促进稀疏解,即模型参数中许多元素为零。这有助于特征选择和模型简化。Lasso的目标函数可以直接表示为:

   J ( w , λ ) = ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 1 J(w, \lambda) = \|Xw - y\|_2^2 + \lambda \|w\|_1 J(w,λ)=Xwy22+λw1

  其中, ∥ X w − y ∥ 2 2 \|Xw - y\|_2^2 Xwy22是预测值与实际值之间的平方误差和, ∥ w ∥ 1 \|w\|_1 w1是权重向量 w w w的L1范数,即权重的绝对值之和, λ \lambda λ是正则化参数,控制模型复杂度与拟合度之间的权衡。

  L1正则化项可以视为参数先验分布为拉普拉斯分布的贝叶斯估计。拉普拉斯分布是一种重尾分布,它为参数提供了稀疏的先验,这意味着许多参数值倾向于为零或接近零,从而促进了模型的稀疏性。

Lasso回归的贝叶斯分布

  贝叶斯估计是一种在贝叶斯统计框架下进行参数估计的方法。它通过结合先验知识和观测数据来更新对参数的信念。以下是贝叶斯估计的基本概念和步骤:

  数据的似然
ℓ ( f ) = ∑ i = 1 N ln ⁡ p ( y i ∣ x i ) − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 \ell(f) = \sum_{i=1}^N \ln p(y_i|x_i) - \frac{N}{2} \ln(2\pi) - N\ln\sigma - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} (f)=i=1Nlnp(yixi)2Nln(2π)Nlnσi=1N2σ2(yif(xi))2

  参数的先验
假设参数 w j w_j wj服从拉普拉斯分布 L a p l a c e ( 0 , b ) Laplace(0, b) Laplace(0,b),且 w j w_j wj相互独立,则先验概率密度函数为:
p ( w ) = ∏ j = 1 D p ( w j ) = ∏ j = 1 D 1 2 b exp ⁡ ( − ∣ w j ∣ b ) p(w) = \prod_{j=1}^D p(w_j) = \prod_{j=1}^D \frac{1}{2b} \exp\left(-\frac{|w_j|}{b}\right) p(w)=j=1Dp(wj)=j=1D2b1exp(bwj)

  参数的后验
后验概率密度函数与先验和似然的乘积成正比:
ln ⁡ p ( w ∣ D ) ∝ ln ⁡ p ( w ) + ln ⁡ p ( D ∣ w ) \ln p(w|\mathcal{D}) \propto \ln p(w) + \ln p(\mathcal{D}|w) lnp(wD)lnp(w)+lnp(Dw)
展开后得到:
= − D ln ⁡ ( 2 b ) − ∑ j = 1 D ∣ w j ∣ b − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 = -D \ln(2b) - \sum_{j=1}^D \frac{|w_j|}{b} - \frac{N}{2} \ln(2\pi) - N\ln\sigma - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} =Dln(2b)j=1Dbwj2Nln(2π)Nlnσi=1N2σ2(yif(xi))2
在这里插入图片描述

  图中还展示了不同lambda值下的拉普拉斯分布的概率密度函数图,说明了拉普拉斯分布的形状如何随着lambda值的变化而变化。

通过贝叶斯估计,我们可以在给定数据的情况下,结合先验知识来更新对参数的估计,从而得到更准确和可靠的模型参数。

最大后验估计(Maximum a posteriori estimation, MAP)

  最大后验估计(Maximum a posteriori estimation, MAP)是一种统计学方法,用于在给定数据的情况下找到参数的最可能值。在贝叶斯统计中,MAP估计通过最大化后验概率分布来估计参数。对于线性回归模型,MAP估计可以表示为:

   w ^ = arg ⁡ max ⁡ w ln ⁡ p ( w ∣ D ) \hat{w} = \arg\max_w \ln p(w|\mathcal{D}) w^=argwmaxlnp(wD)

  这个表达式可以进一步展开为:
= arg ⁡ max ⁡ w ( − D ln ⁡ ( 2 b ) − ∑ j = 1 D ∣ w j ∣ b − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 ) = \arg\max_w \left( -D \ln(2b) - \sum_{j=1}^D \frac{|w_j|}{b} - \frac{N}{2} \ln(2\pi) - N\ln\sigma - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} \right) =argwmax(Dln(2b)j=1Dbwj2Nln(2π)Nlnσi=1N2σ2(yif(xi))2)

  在上述公式中,我们去掉与 w w w无关的项,得到:
= arg ⁡ max ⁡ w ( − ∑ j = 1 D ∣ w j ∣ b − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 ) = \arg\max_w \left( - \sum_{j=1}^D \frac{|w_j|}{b} - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} \right) =argwmax(j=1Dbwji=1N2σ2(yif(xi))2)

  通过乘以 2 σ 2 2\sigma^2 2σ2,我们可以将最大化问题转换为最小化问题:
= arg ⁡ min ⁡ w ( 2 σ 2 b ∑ j = 1 D ∣ w j ∣ + ∑ i = 1 N ( y i − w T x i ) 2 ) = \arg\min_w \left( \frac{2\sigma^2}{b} \sum_{j=1}^D |w_j| + \sum_{i=1}^N (y_i - w^T x_i)^2 \right) =argwmin(b2σ2j=1Dwj+i=1N(yiwTxi)2)

  这个最小化问题等价于Lasso回归的目标函数(去掉负号,取最大变成取最小):
J ( w , λ ) = ( X w − y ) T ( X w − y ) + λ ∑ i = 1 D ∣ w i ∣ J(w, \lambda) = (Xw - y)^T(Xw - y) + \lambda \sum_{i=1}^D |w_i| J(w,λ)=(Xwy)T(Xwy)+λi=1Dwi

  在Lasso回归中, λ \lambda λ是一个正则化参数,用于控制模型的复杂度。通过引入L1正则化项,Lasso回归能够产生稀疏解,即许多权重参数为零,这有助于特征选择和模型简化。

sklearn中的Lasso回归:Lasso

  可以通过sklearn.linear_model.Lasso类来实现。以下是该类的基本用法和参数说明:

  类定义

class sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False,precompute=False, copy_X=True, max_iter=1000, tol=0.0001,warm_start=False, positive=False, random_state=None, selection='cyclic')

  参数说明

  • alpha:控制目标函数 J ( w , λ ) = 1 2 N ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 1 J(w, \lambda) = \frac{1}{2N} \|Xw - y\|_2^2 + \lambda \|w\|_1 J(w,λ)=2N1Xwy22+λw1 中的正则化强度 λ \lambda λ
  • fit_interceptnormalizecopy_X:这些参数的含义与LinearRegression类相同。
  • 其他参数与优化计算有关,具体请参考优化求解部分的文档。

  属性和方法

  • 属性同LinearRegression
  • 常用方法同LinearRegression

  通过使用Lasso类,我们可以方便地在数据集上应用Lasso回归,从而实现特征选择和模型简化。Lasso回归通过引入L1正则化项,可以有效地减少模型的复杂度,提高模型的泛化能力。

弹性网络:L1正则 + L2正则

  正则项还可以为L1正则和L2正则的线性组合:
R ( w , ρ ) = ∑ j = 1 D ( ρ ∣ w j ∣ + ( 1 − ρ ) 2 w j 2 ) R(w, \rho) = \sum_{j=1}^{D} \left( \rho |w_j| + \frac{(1 - \rho)}{2} w_j^2 \right) R(w,ρ)=j=1D(ρwj+2(1ρ)wj2)

  得到弹性网络的目标函数:
J ( w , λ , ρ ) = 1 2 N ∥ X w − y ∥ 2 2 + λ ( ρ ∥ w ∥ 1 + ( 1 − ρ ) 2 ∥ w ∥ 2 2 ) , 0 ≤ ρ ≤ 1. J(w, \lambda, \rho) = \frac{1}{2N} \|Xw - y\|_2^2 + \lambda \left( \rho \|w\|_1 + \frac{(1 - \rho)}{2} \|w\|_2^2 \right), \quad 0 \leq \rho \leq 1. J(w,λ,ρ)=2N1Xwy22+λ(ρw1+2(1ρ)w22),0ρ1.

Sklearn中实现的弹性网络为:ElasticNet

class sklearn.linear_model.ElasticNet(alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False,precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False,positive=False, random_state=None, selection='cyclic')

alpha参数为上述目标函数中的 λ \lambda λ,l1_ratio为上述目标函数中的 ρ \rho ρ

  在这段内容中,我们介绍了弹性网络(ElasticNet)的基本概念和实现方式。弹性网络是一种结合了L1正则(Lasso)和L2正则(Ridge)的线性回归模型。通过调整参数 ρ \rho ρ,可以在L1和L2正则之间进行权衡,从而控制模型的复杂度和稀疏性。

  目标函数 J ( w , λ , ρ ) J(w, \lambda, \rho) J(w,λ,ρ)是模型优化的目标,其中 λ \lambda λ控制正则项的强度, ρ \rho ρ控制L1和L2正则的混合比例。Sklearn库中的ElasticNet类实现了这一模型,其中alpha参数对应于 λ \lambda λl1_ratio参数对应于 ρ \rho ρ。通过合理设置这些参数,可以在模型的拟合能力和泛化能力之间找到平衡。

未完待续……

关键字:可以分为()_网络营销理论基础有哪些_百度app关键词优化_营销型外贸网站建设

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: