线性回归 (Linear Regression)基础知识1

本章节主要介绍:回归任务简介、线性回归模型、回归任务的损失函数

    • *回归任务
    • *机器学习的三要素
    • 线性回归
      • 线性回归模型
    • *数据分析
      • *散点图
      • *相关性系数矩阵
    • *拓展知识:相关性系数矩阵
      • 定义
      • 计算
      • 相关性系数矩阵
      • 示例
      • 应用
    • 线性回归的损失函数
      • 回归任务目标函数:
      • *知识拓展:正则项、损失函数、优化算法
      • 回归问题中最常用的损失函数
        • L2损失函数
      • 训练集上的预测残差平方和
      • *拓展知识:L1、L2、Huber损失
        • L2损失和L1损失的区别
        • Huber损失的优势
        • 其他评估回归模型的指标
        • 应用场景举例
      • L2损失函数的概率解释
        • 负对数似然损失
        • 残差分布
        • *知识拓展:似然估计、残差、极大似然估计
          • 似然估计 (Likelihood Estimation)
            • 举个例子:
          • 残差 (Residuals)
            • 举个例子:
          • 极大似然估计 (Maximum Likelihood Estimation, MLE)
            • 原理
            • 数学表达
            • 例子
            • 应用
            • 注意事项
      • 胡伯(Huber)损失函数
      • 采用Huber损失的回归模型: HuberRegressor
      • 采用Huber损失的回归模型: SGDRegressor
      • 思考
        • 拉普拉斯分布
        • L1损失与拉普拉斯分布
        • 结论
      • 知识拓展:拉普拉斯分布与高斯分布
        • 拉普拉斯分布(Laplace Distribution)
        • 高斯分布(Gaussian Distribution)

(目录中带*注解的内容为通用部分,非本章节特定内容。)

*回归任务

  回归任务:在机器学习中,我们经常需要根据一些已知的数据来预测未知的结果。这些已知的数据被称为训练数据,记作 D = { ( x i , y i ) } i = 1 N \mathcal{D} = \{(x_i, y_i)\}_{i=1}^N D={(xi,yi)}i=1N。其中, N N N 是训练样本的数量, x i x_i xi 是第 i i i 个样本的输入特征(比如房子的面积、房间数量等),而 y i y_i yi 是对应的输出值(比如房价或温度)。

  当 y i ∈ R y_i \in \mathbb{R} yiR R \mathbb{R} R 是实数集)时,意味着 y i y_i yi 是一个连续的数值,而不是离散的类别(比如“苹果”或“香蕉”)。这种任务被称为回归任务。回归任务的目标是找到一个函数 f f f,使得对于任何输入 x x x,我们都能通过 f ( x ) f(x) f(x) 预测出一个连续的输出值 y y y

例如:

  • 如果我们在预测房价,房价可以是任意正实数,比如 300 , 000 300,000 300,000 元、 325 , 750 325,750 325,750 元等,那么 y i ∈ R y_i \in \mathbb{R} yiR
  • 如果我们在预测温度,温度可以是任意实数,比如 25. 3 ∘ C 25.3^\circ\text{C} 25.3C − 10. 7 ∘ C -10.7^\circ\text{C} 10.7C 等,那么 y i ∈ R y_i \in \mathbb{R} yiR

  训练:在回归任务中,我们需要用训练数据 D \mathcal{D} D 来“教”模型如何从输入 x x x 预测出输出 y y y。这个过程就像是给模型展示很多已知的例子,让它学会其中的规律。

  测试:训练完成后,模型就可以用来预测新的数据了。这个过程被称为测试。具体来说,对于新的测试数据 x x x,我们用学习到的函数 f f f 来预测它的输出值 y ^ = f ( x ) \hat{y} = f(x) y^=f(x)
在这里插入图片描述
例如:
  我们的目标是通过这些输入数据(广告费用)来预测输出数据(产品销量)。具体来说,我们希望找到一个函数 f f f,使得对于给定的输入向量 x = ( x 1 , x 2 , x 3 ) x=(x_1 ,x_ 2,x_3) x=(x1,x2,x3),我们能够预测出相应的输出值 y = f ( x 1 , x 2 , x 3 ) y=f(x_1,x_2,x_3) y=f(x1,x2,x3)
在这里插入图片描述
  模型可以抽象为:
在这里插入图片描述

*机器学习的三要素

  1. 函数集合 { f 1 , f 2 , … } \{f_1, f_2, \ldots\} {f1,f2,}:这是一组可能的函数,每个函数都试图从输入数据中学习并做出预测。
  2. 目标函数 J ( f ) J(f) J(f):这是用来评估函数好坏的标准。我们希望找到的函数是能够使目标函数值最小(或最大化)的函数。
  3. 优化算法:这是用来找到最佳函数的方法。通过优化算法,我们可以在函数集合中搜索并确定哪个函数最适合我们的数据。

线性回归

  线性回归是一种特殊的机器学习模型,它假设输出 y y y 与输入 x x x 之间的关系是线性的。这意味着我们可以将输出表示为输入特征的线性组合。

线性回归模型

y ^ = f ( x ) = w 0 + ∑ j = 1 D w j x j = [ w 0 w 1 … w D ] [ 1 x 1 ⋮ x D ] = w ⊤ x \hat{y} = f(x) = w_0 + \sum_{j=1}^{D} w_j x_j = \begin{bmatrix} w_0 & w_1 & \ldots & w_D \end{bmatrix} \begin{bmatrix} 1 \\ x_1 \\ \vdots \\ x_D \end{bmatrix} = \mathbf{w}^\top \mathbf{x} y^=f(x)=w0+j=1Dwjxj=[w0w1wD] 1x1xD =wx

  • 截距项 w 0 w_0 w0 是模型的截距项,它允许模型在特征值为零时也能做出预测。
  • j j j 维特征的权重/回归系数 w j w_j wj 是第 j j j 个特征的权重,它表示该特征对输出的影响程度。
  • D D D:特征维数,即输入特征的数量。
  • x = ( 1 , x 1 , … , x D ) ⊤ \mathbf{x} = (1, x_1, \ldots, x_D)^\top x=(1,x1,,xD):在 D D D 维特征的基础上,增加一个常数项 1(用于表示截距项),这样模型就可以包含一个截距项了。

  通过线性回归,我们可以尝试找到一组权重 w 0 , w 1 , … , w D w_0, w_1, \ldots, w_D w0,w1,,wD,使得模型能够最好地拟合训练数据,从而对新的输入数据做出准确的预测。

*数据分析

*散点图

  可通过散点图/相关系数初步检查目标与特征之间是否符合线性关系:
在这里插入图片描述

*相关性系数矩阵

  通过相关性系数矩阵我们也可以判断出:
在这里插入图片描述

  产品销量(sales)与电视广告费用(TV)以及广播广告费用(radio)线性相关程度较高,相关系数大于0.5;产品销量(sales)与报纸广告费用(newspaper)线性相关程度不高(相关系数小于0.3 )。

*拓展知识:相关性系数矩阵

  相关性系数矩阵是一个统计工具,用于量化多个变量之间的线性关系强度和方向。在机器学习和数据分析中,相关性系数矩阵可以帮助我们理解不同特征之间的关系,以及特征与目标变量之间的关系。

定义

  相关性系数(通常用 r r r 表示)的取值范围是 -1 到 1:

  • r = 1 r = 1 r=1 表示完全正相关,即一个变量增加,另一个变量也增加。
  • r = − 1 r = -1 r=1 表示完全负相关,即一个变量增加,另一个变量减少。
  • r = 0 r = 0 r=0 表示没有线性相关。

计算

  相关性系数可以通过以下公式计算: r x y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r_{xy} = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^n (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^n (y_i - \bar{y})^2}} rxy=i=1n(xixˉ)2 i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ) 其中:

  • x i x_i xi y i y_i yi 是变量 x x x y y y 的观测值。
  • x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 是变量 x x x y y y 的平均值。
  • n n n 是观测值的数量。

相关性系数矩阵

  对于多个变量,我们可以构建一个相关性系数矩阵,其中矩阵的每个元素 r i j r_{ij} rij 表示变量 i i i 和变量 j j j
之间的相关性系数。如果 i = j i = j i=j,则 r i i = 1 r_{ii} = 1 rii=1,因为任何变量与自身的相关性总是完全正相关。

示例

  假设我们有三个变量 X X X Y Y Y,和 Z Z Z,我们可以构建如下的相关性系数矩阵:

[ 1 r X Y r X Z r Y X 1 r Y Z r Z X r Z Y 1 ] \begin{bmatrix} 1 & r_{XY} & r_{XZ} \\ r_{YX} & 1 & r_{YZ} \\ r_{ZX} & r_{ZY} & 1 \end{bmatrix} 1rYXrZXrXY1rZYrXZrYZ1

在这个矩阵中:

  • r X Y r_{XY} rXY 表示 X X X Y Y Y 之间的相关性。
  • r X Z r_{XZ} rXZ 表示 X X X Z Z Z 之间的相关性。
  • r Y Z r_{YZ} rYZ 表示 Y Y Y Z Z Z 之间的相关性。

应用

  相关性系数矩阵在特征选择、数据预处理和理解数据结构中非常有用。它可以帮助我们识别哪些特征之间存在强相关性,从而可能需要在模型中进行处理(例如,通过特征选择或降维)以避免多重共线性问题。

线性回归的损失函数

  前面我们说过机器学习的三要素有:

  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 ) \lambda R(f) λR(f) 是正则项,用于防止过拟合。

*知识拓展:正则项、损失函数、优化算法

正则项 λ R ( f ) \lambda R(f) λR(f) 是什么?

  正则项 λ R ( f ) \lambda R(f) λR(f)
是机器学习中用来防止模型过拟合的一种技术。它通过在目标函数中添加一个与模型参数复杂度相关的额外项来实现。这个正则项的系数 λ \lambda λ
控制着正则化项的强度,从而影响模型的复杂度和泛化能力。

损失函数 L ( y ^ i , y i ) L(\hat{y}_i, y_i) L(y^i,yi) 有哪些类型?

  损失函数 L ( y ^ i , y i ) L(\hat{y}_i, y_i) L(y^i,yi)
有多种类型,具体取决于任务的性质。对于回归任务,常见的损失函数包括:

  - 平均绝对误差(MAE/L1损失)   - 平均平方误差(MSE/L2损失)
  - Smooth L1 loss   - Huber损失   - Log
cosh loss   - Quantile loss

机器学习中有哪些常见的优化算法?

  机器学习中常见的优化算法包括:

  - 随机梯度下降法(SGD):通过在每次迭代时选取一批样本来近似计算损失函数,从而在概率意义下收敛。
  - Adam算法:整合了自适应学习率与动量项,通过梯度构造两个向量 m m m
v v v,前者为动量项,后者累积了梯度的平方和,用于构造自适应学习率。   -
AdaGrad算法:一种自适应学习率的优化算法,能够根据参数的历史梯度来动态调整学习率。   - RMSprop算法:对AdaGrad的改进,通过引入一个指数衰减的平均来平滑历史梯度的方差。   - 牛顿法和拟牛顿法:牛顿法是基于目标函数的二阶导数信息的优化算法,而拟牛顿法是牛顿法的改进,通过构造一个对称正定的矩阵来逼近目标函数的二阶导数矩阵的逆矩阵,从而避免了直接计算二阶导数矩阵的逆矩阵。

回归问题中最常用的损失函数

L2损失函数

  对于回归问题,最常用的损失函数为 L2损失,即预测残差的平方:

   L ( y ^ , y ) = ( y ^ − y ) 2 = r 2 L(\hat{y}, y) = (\hat{y} - y)^2 = r^2 L(y^,y)=(y^y)2=r2

  其中,预测残差 r = y − y ^ r = y - \hat{y} r=yy^

训练集上的预测残差平方和

  训练集上所有训练数据的预测残差的平方和记为 Residual Sum of Squares (RSS)

   R S S ( f ) = ∑ i = 1 N r i 2 = ∑ i = 1 N ( y ^ i − y i ) 2 RSS(f) = \sum_{i=1}^{N} r_i^2 = \sum_{i=1}^{N} (\hat{y}_i - y_i)^2 RSS(f)=i=1Nri2=i=1N(y^iyi)2
在这里插入图片描述

  图中展示了不同损失函数的形状,包括L2损失、L1损失和Huber损失(参数为0.5)。

*拓展知识:L1、L2、Huber损失

L2损失和L1损失的区别

  L2损失(平方损失)

  • 定义 L ( y ^ , y ) = ( y ^ − y ) 2 L(\hat{y}, y) = (\hat{y} - y)^2 L(y^,y)=(y^y)2
  • 特性:对大的误差给予更大的权重,因为误差是平方的。这使得模型对异常值非常敏感。
  • 应用:当数据中没有很多异常值,或者异常值的影响需要被减小时,L2损失是一个不错的选择。

  L1损失(绝对损失)

  • 定义 L ( y ^ , y ) = ∣ y ^ − y ∣ L(\hat{y}, y) = |\hat{y} - y| L(y^,y)=y^y
  • 特性:对所有误差给予相同的权重,无论误差大小。这使得模型对异常值不太敏感。
  • 应用:适用于存在异常值的数据集,或者当希望模型对异常值不太敏感时。
Huber损失的优势

  Huber损失是L1和L2损失的结合,它在误差较小时表现为L2损失,在误差较大时表现为L1损失:

  • 定义:对于某个阈值 δ \delta δ,当 ∣ y ^ − y ∣ ≤ δ |\hat{y} - y| \leq \delta y^yδ 时, L ( y ^ , y ) = ( y ^ − y ) 2 L(\hat{y}, y) = (\hat{y} - y)^2 L(y^,y)=(y^y)2;否则, L ( y ^ , y ) = δ ( ∣ y ^ − y ∣ − δ 2 ) L(\hat{y}, y) = \delta (|\hat{y} - y| - \frac{\delta}{2}) L(y^,y)=δ(y^y2δ)
  • 优势
    • 对异常值的鲁棒性:由于在误差较大时表现为L1损失,Huber损失对异常值不太敏感。
    • 平滑性:在误差较小时表现为L2损失,使得优化过程更加平滑,有助于算法的收敛。
其他评估回归模型的指标

  除了Residual Sum of Squares (RSS),还有多种指标可以用来评估回归模型的性能:

  • 均方误差(MSE) M S E = 1 N ∑ i = 1 N ( y ^ i − y i ) 2 MSE = \frac{1}{N} \sum_{i=1}^{N} (\hat{y}_i - y_i)^2 MSE=N1i=1N(y^iyi)2
  • 均方根误差(RMSE) R M S E = M S E RMSE = \sqrt{MSE} RMSE=MSE
  • 平均绝对误差(MAE) M A E = 1 N ∑ i = 1 N ∣ y ^ i − y i ∣ MAE = \frac{1}{N} \sum_{i=1}^{N} |\hat{y}_i - y_i| MAE=N1i=1Ny^iyi
  • R平方( R 2 R^2 R2:衡量模型解释的变异性比例, R 2 = 1 − R S S T S S R^2 = 1 - \frac{RSS}{TSS} R2=1TSSRSS,其中TSS是总平方和。
  • 平均绝对百分比误差(MAPE) M A P E = 100 N ∑ i = 1 N ∣ y ^ i − y i y i ∣ MAPE = \frac{100}{N} \sum_{i=1}^{N} \left|\frac{\hat{y}_i - y_i}{y_i}\right| MAPE=N100i=1N yiy^iyi
  • 斯皮尔曼等级相关系数:衡量预测值和真实值之间的等级相关性。

  这些指标从不同的角度评估模型的性能,选择哪个指标取决于具体的应用场景和业务需求。

应用场景举例

  在选择评估回归模型的指标时,需要考虑具体的应用场景和业务需求。以下是一些常见的评估指标及其适用场景:

  -
均方误差(MSE):适用于对大误差敏感的场景。例如,在金融风险评估中,我们希望避免出现大的预测偏差,因为这些偏差可能会导致重大的经济损失。其公式为
M S E = 1 N ∑ i = 1 N ( y ^ i − y i ) 2 MSE = \frac{1}{N} \sum_{i=1}^{N} (\hat{y}_i - y_i)^2 MSE=N1i=1N(y^iyi)2

  -
均方根误差(RMSE):由于其单位与目标变量一致,RMSE在需要直观理解误差大小的场景中非常有用,如在环境科学中预测污染物浓度。其公式为
R M S E = M S E RMSE = \sqrt{MSE} RMSE=MSE

  -
平均绝对误差(MAE):适用于对异常值不太敏感的场景。例如,在零售销售预测中,我们可能更关心整体的预测准确性而不是个别极端值的影响。其公式为
M A E = 1 N ∑ i = 1 N ∣ y ^ i − y i ∣ MAE = \frac{1}{N} \sum_{i=1}^{N} |\hat{y}_i - y_i| MAE=N1i=1Ny^iyi

  -
R平方( R 2 R^2 R2:用于衡量模型解释的变异性比例,适用于需要评估模型解释力的场景,如在社会科学研究中分析不同因素对某一社会现象的影响。其公式为
R 2 = 1 − R S S T S S R^2 = 1 - \frac{RSS}{TSS} R2=1TSSRSS,其中TSS是总平方和。

  -
平均绝对百分比误差(MAPE):当预测的准确性比误差的绝对值更重要时,MAPE是一个有用的指标,如在库存管理中评估预测的准确性。其公式为
M A P E = 100 N ∑ i = 1 N ∣ y ^ i − y i y i ∣ MAPE = \frac{100}{N} \sum_{i=1}^{N} \left|\frac{\hat{y}_i - y_i}{y_i}\right| MAPE=N100i=1N yiy^iyi

  - 斯皮尔曼等级相关系数:适用于评估预测值和真实值之间的等级相关性,如在医学研究中评估治疗效果的排名相关性。

  在实际开发过程中,我们可以根据数据的特点和业务需求来选择最合适的评估指标。例如,在噪声较大的数据集中,可以选择MAE作为评估指标;而在对数据精度要求较高的场景中,可以选择RMSE或MSE作为评估指标。此外,还可以根据模型优化的需求,结合多个指标来全面评估模型的性能。

L2损失函数的概率解释

  最小化L2损失函数等同于在高斯白噪声假设下的极大似然估计。
在这里插入图片描述

  在回归任务中,我们定义模型预测值和真实值之间的差异为噪声 ε \varepsilon ε。假设噪声 ε i \varepsilon_i εi相互独立且与输入无关,并且 ε i \varepsilon_i εi服从均值为0的正态分布,即 ε i ∼ N ( 0 , σ 2 ) \varepsilon_i \sim N(0, \sigma^2) εiN(0,σ2),那么:

   y i = f ( x i ) + ε i y_i = f(x_i) + \varepsilon_i yi=f(xi)+εi

   y i ∣ x i ∼ N ( f ( x i ) , σ 2 ) y_i | x_i \sim N(f(x_i), \sigma^2) yixiN(f(xi),σ2)

  因此,条件概率密度函数为 p ( y i ∣ x i ) = 1 2 π σ exp ⁡ ( − ( y i − f ( x i ) ) 2 2 σ 2 ) p(y_i | x_i) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(y_i - f(x_i))^2}{2\sigma^2}\right) p(yixi)=2π σ1exp(2σ2(yif(xi))2)

  注意:在给定 x i x_i xi的情况下, f ( x i ) f(x_i) f(xi)被视为常数。

  单个数据点的条件概率密度函数为:

   p ( y i ∣ x i ) = 1 2 π σ exp ⁡ ( − ( y i − f ( x i ) ) 2 2 σ 2 ) p(y_i | x_i) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(y_i - f(x_i))^2}{2\sigma^2}\right) p(yixi)=2π σ1exp(2σ2(yif(xi))2)

  对应的对数似然函数为:

   ℓ ( f ) = ln ⁡ p ( D ) = ∑ i = 1 N ln ⁡ p ( y i ∣ x i ) \ell(f) = \ln p(\mathcal{D}) = \sum_{i=1}^N \ln p(y_i | x_i) (f)=lnp(D)=i=1Nlnp(yixi)

   = ∑ i = 1 N ln ⁡ [ 1 2 π σ exp ⁡ ( − ( y i − f ( x i ) ) 2 2 σ 2 ) ] = \sum_{i=1}^N \ln \left[\frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(y_i - f(x_i))^2}{2\sigma^2}\right)\right] =i=1Nln[2π σ1exp(2σ2(yif(xi))2)]

   = − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 = -\frac{N}{2} \ln(2\pi) - N \ln \sigma - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} =2Nln(2π)Nlnσi=1N2σ2(yif(xi))2

  对数似然函数为:

   ℓ ( f ) = − N 2 ln ⁡ ( 2 π ) − N ln ⁡ σ − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 \ell(f) = -\frac{N}{2} \ln(2\pi) - N \ln \sigma - \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} (f)=2Nln(2π)Nlnσi=1N2σ2(yif(xi))2

  为了最大化对数似然,我们需要最大化 − ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 -\sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} i=1N2σ2(yif(xi))2,从而最小化 ∑ i = 1 N ( y i − f ( x i ) ) 2 2 σ 2 \sum_{i=1}^N \frac{(y_i - f(x_i))^2}{2\sigma^2} i=1N2σ2(yif(xi))2

   ∑ i = 1 N ( y i − f ( x i ) ) 2 = R S S ( f ) \sum_{i=1}^N (y_i - f(x_i))^2 = RSS(f) i=1N(yif(xi))2=RSS(f),这正是残差平方和,也就是训练集上的L2损失之和。

  因此,极大似然估计等同于最小二乘(最小化L2损失函数)。

负对数似然损失

  极大似然估计等同于最小化负对数似然,因此负对数似然也被称为一种损失函数:负对数似然损失。

  • L2损失是在高斯白噪声假设下的负对数似然损失。

  • 在分类任务中,Logistic回归使用的损失函数也是负对数似然损失。

残差分布

  我们也可以通过残差的分布来检验回归模型是否足够准确。

  如果模型预测合理,残差应该服从均值为0的正态分布。
在这里插入图片描述
  残差的分布并不符合0均值的正态分布,该模型(最小二乘回归模型)预测效果并不好
在这里插入图片描述

  从真实值和残差的散点图来看,当真实值较大时,预测残差大多小于0。模型还没有完全捕捉y与x之间的关系,还有一部分关系残留在残差中。

*知识拓展:似然估计、残差、极大似然估计
似然估计 (Likelihood Estimation)

  似然估计是一种统计方法,用于估计模型参数,使得观测到的数据在这些参数下出现的概率(即似然)最大。似然函数是给定参数时观测数据的概率,而似然估计的目标是找到使这个概率最大的参数值。

举个例子:

  假设我们有一个硬币抛掷实验,我们想知道硬币是正面朝上的概率 p p p。如果我们抛掷硬币10次,观察到8次正面朝上,我们可以使用似然估计来估计 p p p的值。似然函数可以表示为在给定 p p p的情况下,观察到8次正面朝上的概率。我们希望找到使这个概率最大的 p p p值。

残差 (Residuals)

  在统计学和机器学习中,残差是指观测值与模型预测值之间的差异。残差是评估模型拟合优度的重要指标,可以帮助我们理解模型对数据的解释能力。

举个例子:

  假设我们使用线性回归模型来预测房价。如果我们的模型预测某套房子的价格为$200,000,而实际价格为$220,000,那么残差就是$220,000

  • $200,000 = $20,000。这个残差告诉我们模型在这次预测中低估了房价。

总之:

  - 似然估计:是一种找到最佳模型参数的方法,使得观测数据在这些参数下出现的概率最大。
  - 残差:是观测值与模型预测值之间的差异,用于评估模型的拟合效果。

  在实际应用中,我们通常希望模型的残差尽可能小,这意味着模型的预测值与实际观测值非常接近。同时,我们使用似然估计来找到最佳的模型参数,以提高模型的预测准确性。

极大似然估计 (Maximum Likelihood Estimation, MLE)

  极大似然估计是一种在已知数据生成过程的统计模型下,估计模型参数的方法。其基本思想是:给定观测到的数据,选择那些使得这些数据出现概率(似然)最大的参数值。

原理

  假设我们有一个概率模型,它描述了数据是如何生成的,这个模型依赖于一些未知参数。极大似然估计的目标是找到这些参数的值,使得观测到的数据在这个模型下出现的概率最大。

数学表达

  如果我们有一组独立同分布的观测数据 { x 1 , x 2 , . . . , x n } \{x_1, x_2, ..., x_n\} {x1,x2,...,xn},模型的参数为 θ \theta θ,那么似然函数 L ( θ ) L(\theta) L(θ)定义为在参数 θ \theta θ下观测到这些数据的概率的乘积:
   L ( θ ) = p ( x 1 , x 2 , . . . , x n ∣ θ ) = ∏ i = 1 n p ( x i ∣ θ ) L(\theta) = p(x_1, x_2, ..., x_n | \theta) = \prod_{i=1}^{n} p(x_i | \theta) L(θ)=p(x1,x2,...,xnθ)=i=1np(xiθ)
  极大似然估计就是找到使 L ( θ ) L(\theta) L(θ)最大的 θ \theta θ值。在实际应用中,由于对数函数的单调性,我们通常最大化对数似然函数 ln ⁡ L ( θ ) \ln L(\theta) lnL(θ),这可以简化计算:   ℓ ( θ ) = ln ⁡ L ( θ ) = ∑ i = 1 n ln ⁡ p ( x i ∣ θ ) \ell(\theta) = \ln L(\theta) = \sum_{i=1}^{n} \ln p(x_i | \theta) (θ)=lnL(θ)=i=1nlnp(xiθ)

例子

  假设我们有一个硬币抛掷实验,我们想要估计硬币正面朝上的概率 p p p。如果我们抛掷硬币10次,观察到8次正面朝上,我们可以使用极大似然估计来估计 p p p的值。似然函数可以表示为在给定 p p p的情况下,观察到8次正面朝上的概率。我们希望找到使这个概率最大的 p p p值。

应用

  极大似然估计在统计学、机器学习、信号处理等领域中广泛应用,用于估计回归模型的参数、分类模型的参数等。它是一种强大的参数估计方法,因为它直接基于数据生成的概率模型。

注意事项

  - 极大似然估计依赖于数据生成模型的假设,如果模型假设不准确,估计结果可能会有偏差。
  - 在某些情况下,极大似然估计可能没有解析解,需要使用数值优化方法求解。
  - 极大似然估计对异常值敏感,因为异常值可能会显著影响似然函数的值。

胡伯(Huber)损失函数

  L2损失的一个优点是它在任何地方都是连续的,这使得优化求解变得方便。

  然而,L2损失对噪声点非常敏感(当预测残差 r r r的绝对值较大时, r 2 r^2 r2会变得非常大)。

  考虑使用L1( ∣ r ∣ |r| r)损失函数,但是 ∣ r ∣ |r| r r = 0 r=0 r=0处不连续,这使得优化求解变得复杂。

  因此,我们综合了L1和L2损失函数,得到了Huber损失:

L δ ( y ^ , y ) = { 1 2 ( y ^ − y ) 2 ∣ r ∣ ≤ δ δ ∣ y ^ − y ∣ − 1 2 δ 2 otherwise L_{\delta}(\hat{y}, y) = \begin{cases} \frac{1}{2}(\hat{y} - y)^2 & |r| \leq \delta \\ \delta|\hat{y} - y| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases} Lδ(y^,y)={21(y^y)2δy^y21δ2rδotherwise

  下图比较了L2损失、L1损失和Huber损失:

在这里插入图片描述

  横轴:预测残差 r = y − y ^ r = y - \hat{y} r=yy^
  纵轴:损失函数的值

在这里插入图片描述
  左上方和右下出现了一些异常点,OLS和Ridge regression (L2损失)都不同程度上受到了异常点的影响,而Huber损失受影响很小。
在这里插入图片描述
  正常点所占的比重更小, OLS和Ridge regression (L2损失)所决定出的回归模型几乎不工作,Huber损失性能很好。

采用Huber损失的回归模型: HuberRegressor

  sklearn中实现Huber损失的回归模型: HuberRegressor

# Huber损失:
from sklearn.linear_model import HuberRegressor
huber = HuberRegressor()
huber.fit(X_train, y_train)
y_train_pred_huber = huber.predict(X_train)
# L2损失:
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X_train, y_train)
y_train_pred_lr = lr.predict(X_train)

采用Huber损失的回归模型: SGDRegressor

  当训练样本很多时,可采用随机梯度下降来优化模型参数
  sklearn中的实现为SGDRegressor
   • 损失函数参数 loss=‘huber’
   • 和HuberRegressor中稍有不同,详见sklearn文档
  当有数据噪声严重时,还可采用RANSAC (RANdom SAmple Consensus)识别噪声
  sklearn中对应的类为RANSACRegressor

思考

回归任务中L1损失对应的噪声模型是什么分布?L1损失最小也等价于极大似然估计吗?
  在回归任务中,L1损失函数对应的噪声模型是拉普拉斯分布(Laplace distribution)。L1损失最小化等价于对拉普拉斯分布噪声进行极大似然估计。

拉普拉斯分布

拉普拉斯分布的概率密度函数定义为:
x ∼ Laplace ( μ , b ) = 1 2 b exp ⁡ ( − ∣ x − μ ∣ b ) x \sim \text{Laplace}(\mu, b) = \frac{1}{2b} \exp \left( -\frac{|x - \mu|}{b} \right) xLaplace(μ,b)=2b1exp(bxμ)
其中, μ \mu μ 是位置参数, b b b 是尺度参数。

L1损失与拉普拉斯分布

L1损失函数,也称为绝对误差损失,定义为:
L 1 ( y ^ , y ) = ∣ y ^ − y ∣ L_1(\hat{y}, y) = |\hat{y} - y| L1(y^,y)=y^y
其中, y ^ \hat{y} y^ 是预测值, y y y 是真实值。

  在假设噪声服从拉普拉斯分布的情况下,最小化L1损失等价于对噪声进行极大似然估计。这是因为拉普拉斯分布的概率密度函数在误差的绝对值较小时较大,而在误差的绝对值较大时较小。因此,最小化L1损失可以有效地减少大误差的影响,从而更好地拟合数据。

结论
  • L1损失对应的噪声模型是拉普拉斯分布。
  • L1损失最小化等价于对拉普拉斯分布噪声进行极大似然估计。

这种等价关系使得L1损失在处理具有重尾分布的噪声时特别有用,因为它对异常值和大误差具有更强的鲁棒性。

知识拓展:拉普拉斯分布与高斯分布

拉普拉斯分布(Laplace Distribution)

在这里插入图片描述
  拉普拉斯分布,也称为双指数分布,是一种连续概率分布。它由两个不同位置的指数分布背靠背拼接而成,因此得名“双指数”。拉普拉斯分布的概率密度函数(PDF)为:

f ( x ∣ μ , b ) = 1 2 b exp ⁡ ( − ∣ x − μ ∣ b ) f(x|\mu, b) = \frac{1}{2b} \exp\left(-\frac{|x-\mu|}{b}\right) f(xμ,b)=2b1exp(bxμ)

其中:

  • μ \mu μ 是位置参数,决定了分布的中心位置。
  • b > 0 b > 0 b>0 是尺度参数,决定了分布的宽度。

拉普拉斯分布的特点:

  • 对称性:关于 μ \mu μ 对称。
  • 尖峰厚尾:与高斯分布相比,拉普拉斯分布的峰值更尖锐,尾部更厚,这意味着它对异常值更敏感。
高斯分布(Gaussian Distribution)

在这里插入图片描述
  高斯分布,也称为正态分布,是统计学中最常见的概率分布之一。它的概率密度函数(PDF)为:

f ( x ∣ μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) f(xμ,σ2)=2πσ2 1exp(2σ2(xμ)2)

其中:

  • μ \mu μ 是均值,决定了分布的中心位置。
  • σ 2 > 0 \sigma^2 > 0 σ2>0 是方差,决定了分布的宽度。

高斯分布的特点:

  • 对称性:关于 μ \mu μ 对称。
  • 钟形曲线:分布呈现钟形,峰值位于均值 μ \mu μ 处,随着距离均值的增加,概率密度逐渐减小。
  • 薄尾:尾部概率随着距离均值的增加迅速减小,对异常值不太敏感。

  ### 比较

  • 形状:高斯分布呈现钟形曲线,而拉普拉斯分布则呈现尖峰厚尾的形状。
  • 对异常值的敏感度:拉普拉斯分布对异常值更敏感,因为它的尾部更厚。
  • 应用场景:高斯分布通常用于假设数据中不存在太多异常值的情况,而拉普拉斯分布则更适合处理包含异常值的数据。

  在实际应用中,选择哪种分布取决于数据的特性和分析的目标。如果数据中存在较多的异常值,拉普拉斯分布可能是一个更好的选择;而如果数据相对稳定,高斯分布则更为合适。

未完待续……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22610.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直角三角堰计算公式

直角三角堰的计算公式通常用于确定流经直角三角形形状的堰的流量。河北瑾航科技遥测终端机 通过采集液位数据(模拟量、串口485/232),计算得到瞬时流量,然后通过积分进行累计算出累积量;直角三角堰的流量计算公式为: 直角三角堰 计…

《深度学习实战》第2集:卷积神经网络(CNN)与图像分类

《深度学习实战》第2集:卷积神经网络(CNN)与图像分类 引言 卷积神经网络(Convolutional Neural Network, CNN)是深度学习在计算机视觉领域的核心工具。从早期的 LeNet 到现代的 ResNet 和 Vision Transformer&#xf…

github 怎么创建一个私有repository 并从另外一台电脑拉取下来更新

1.github上新建一个repository 设置为private tips删除在这 点setting 然后往下拖动 会有个这里是用来删项目的 2.另外 一台电脑拉取这个repository的时候 需要配置 一个ssh key 这个key的内容生成参考本地电脑的生成 然后在这配置 2.1 生成 SSH 密钥(如果还没有…

deepseek自动化代码生成

使用流程 效果第一步:注册生成各种大模型的API第二步:注册成功后生成API第三步:下载vscode在vscode中下载agent,这里推荐使用cline 第四步:安装完成后,设置模型信息第一步选择API provider: Ope…

分布式事务-本地消息表学习与落地方案

本文参考: 数据库事务系列04-本地消息表实现分布式事务 基础概念 本地消息表实现分布式事务最终一致性的核心:是通过上游本地事务的原子性持久性,配合中间件的重试机制,从而实现调用下游的最终一致性。 这里有几个要点可以解析一…

亚马逊云科技 re:Invent 2023:科技前沿风向标,探索未来云计算之窗

文章目录 一、前言二、什么是亚马逊云科技 re:Invent?三、亚马逊云科技 re:Invent 2023 将于何时何地举行四、亚马逊云科技 re:Invent 2023 有什么内容?4.1 亚马逊云科技 re:Invent 2023 主题演讲4.2 亚马逊云科技行业专家探实战 五、更多亚马逊云科技活…

C++——list模拟实现

目录 前言 一、list的结构 二、默认成员函数 构造函数 析构函数 clear 拷贝构造 赋值重载 swap 三、容量相关 empty size 四、数据访问 front/back 五、普通迭代器 begin/end 六、const迭代器 begin/end 七、插入数据 insert push_back push_front 八、…

虚拟机从零实现机器人控制

1. 系统安装 因Docker不适合需要图形界面的开发,因此使用虚拟机VMware方便可视化界面方式查看效果,相关软件可以从官网下载,这里有一整套免费安装文件百度网盘地址: 2. ROS安装 Ubuntu 22.04:https://docs.ros.org…

【Blender】二、建模篇--06,曲线建模/父子级和蒙皮修改器

00:00:03,620 --> 00:00:09,500 前几节可能我们已经做了很多种类型的模型了 但是有一种类型 我们一直避开就是这种管道 1 00:00:10,050 --> 00:00:19,370 藤条头发啊 衣服架子啊这种弯弯绕绕的 需要一定柔软度的模型 那么这节课呢我们都来集中看一下曲线的模型 我们应该…

机器学习实战(7):聚类算法——发现数据中的隐藏模式

第7集:聚类算法——发现数据中的隐藏模式 在机器学习中,聚类(Clustering) 是一种无监督学习方法,用于发现数据中的隐藏模式或分组。与分类任务不同,聚类不需要标签,而是根据数据的相似性将其划…

静态时序分析:时钟组间的逻辑独立、物理独立和异步的区别

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 当设计中存在多个时钟(同步或异步)时,该如何使用SDC命令约束设计呢?本文就将对此进行讨论。 逻辑独立 例1 多个时钟完全逻辑独立 图1 逻辑…

【从0做项目】Java文档搜索引擎(9)烧脑终章!

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 文章导读 零:项目结果展示 一:导入 二:问题引入 1:情…

gsplat 抗锯齿

关键代码 无论时候开启抗锯齿&#xff0c;都会进行二维膨胀&#xff1a; template <typename T> inline __device__ T add_blur(const T eps2d, mat2<T> &covar, T &compensation) {T det_orig covar[0][0] * covar[1][1] - covar[0][1] * covar[1][0];…

根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目

0.研究背景 在实际的开发中可能会遇到这样的问题&#xff0c;老板让你把音频中的每个讲话人的声音分离成不同的音频片段。你可以使用au等专业的音频处理软件手动分离。但是这样效率太慢了&#xff0c;现在ai这么发达&#xff0c;我们能否借助ai之力来分离一条音频中的不同的说…

一台服务器将docker image打包去另一天服务器安装这个镜像

一台服务器将docker image打到去另一天服务器安装这个镜像 1. 打包2.另一台服务器执行 1. 打包 docker save -o nebula-graph-studio.tar harbor1.vm.example.lan/dockerio/vesoft/nebula-graph-studioxxx.tar 是打包好的文件 后面的是 docker image 2.另一台服务器执行 docke…

STM32-心知天气项目

一、项目需求 使用 ESP8266 通过 HTTP 获取天气数据&#xff08;心知天气&#xff09;&#xff0c;并显示在 OLED 屏幕上。 按键 1 &#xff1a;循环切换今天 / 明天 / 后天天气数据&#xff1b; 按键 2 &#xff1a;更新天气。 二、项目框图 三、cjson作用 https://gi…

自由学习记录(37)

课 对于这一方面&#xff0c;先把课都过一遍吧&#xff0c;尽量快的摸清楚底 软件工程 没有复杂的逻辑推理&#xff0c;概念性和理论很强&#xff0c;所以靠记 ------ 数据&#xff1a;是使程序能够适当处理信息的数据结构 程序&#xff1a;是能够完成预定功能和性能的可执行…

Docker仿真宇树狗GO1

1. 启动容器 docker run -it --rm humble_suo bash2. 安装Go1 的仿真包 apt update apt install -y git cmake build-essential git clone https://github.com/unitreerobotics/unitree_ros.git cd unitree_ros colcon build source install/setup.bash3. 启动仿真环境 ros2…

《游戏人工智能编程 案例精粹》阅读心得

最近读完了这本《游戏人工智能编程 案例精粹》&#xff0c;感觉获益匪浅&#xff0c;在对游戏人工智能的设计上有了更深的感悟。 这本书既适合初学者学习&#xff0c;因为次书会从最基础的数学物理公式推导一步一步介绍到完整的人工智能开发&#xff1b;同时也适合进阶程序员&a…

黑马点评_商品信息缓存模块

保证缓存不要有空档期 删除后马上要写入中间不能插入任何阶段(如查询数据库) 对于单体系统1&#xff0c;将缓存与数据库操作放在同一个事务中&#xff08;当前项目就是一个单体项目&#xff0c;所以选择这种方式&#xff09; 对于分布式系统2&#xff0c;利用TCC&#xff08;Tr…