本章节主要介绍:回归任务简介、线性回归模型、回归任务的损失函数
- *回归任务
- *机器学习的三要素
- 线性回归
- 线性回归模型
- *数据分析
- *散点图
- *相关性系数矩阵
- *拓展知识:相关性系数矩阵
- 定义
- 计算
- 相关性系数矩阵
- 示例
- 应用
- 线性回归的损失函数
- 回归任务目标函数:
- *知识拓展:正则项、损失函数、优化算法
- 回归问题中最常用的损失函数
- 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} yi∈R( 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} yi∈R。
- 如果我们在预测温度,温度可以是任意实数,比如 25. 3 ∘ C 25.3^\circ\text{C} 25.3∘C、 − 10. 7 ∘ C -10.7^\circ\text{C} −10.7∘C 等,那么 y i ∈ R y_i \in \mathbb{R} yi∈R。
训练:在回归任务中,我们需要用训练数据 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=1∑Dwjxj=[w0w1…wD] 1x1⋮xD =w⊤x
- 截距项: 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(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ) 其中:
- 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=1∑NL(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=y−y^。
训练集上的预测残差平方和
训练集上所有训练数据的预测残差的平方和记为 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=1∑Nri2=i=1∑N(y^i−yi)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^−y∣−2δ)
- 优势:
- 对异常值的鲁棒性:由于在误差较大时表现为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=N1∑i=1N(y^i−yi)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=N1∑i=1N∣y^i−yi∣
- R平方( R 2 R^2 R2):衡量模型解释的变异性比例, R 2 = 1 − R S S T S S R^2 = 1 - \frac{RSS}{TSS} R2=1−TSSRSS,其中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=N100∑i=1N yiy^i−yi
- 斯皮尔曼等级相关系数:衡量预测值和真实值之间的等级相关性。
这些指标从不同的角度评估模型的性能,选择哪个指标取决于具体的应用场景和业务需求。
应用场景举例
在选择评估回归模型的指标时,需要考虑具体的应用场景和业务需求。以下是一些常见的评估指标及其适用场景:
-
均方误差(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=N1∑i=1N(y^i−yi)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=N1∑i=1N∣y^i−yi∣。-
R平方( R 2 R^2 R2):用于衡量模型解释的变异性比例,适用于需要评估模型解释力的场景,如在社会科学研究中分析不同因素对某一社会现象的影响。其公式为
R 2 = 1 − R S S T S S R^2 = 1 - \frac{RSS}{TSS} R2=1−TSSRSS,其中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=N100∑i=1N yiy^i−yi 。- 斯皮尔曼等级相关系数:适用于评估预测值和真实值之间的等级相关性,如在医学研究中评估治疗效果的排名相关性。
在实际开发过程中,我们可以根据数据的特点和业务需求来选择最合适的评估指标。例如,在噪声较大的数据集中,可以选择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) εi∼N(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) yi∣xi∼N(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(yi∣xi)=2πσ1exp(−2σ2(yi−f(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(yi∣xi)=2πσ1exp(−2σ2(yi−f(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(yi∣xi)
= ∑ 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(yi−f(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(yi−f(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(yi−f(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(yi−f(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(yi−f(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(yi−f(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=1∏np(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=1∑nlnp(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^−y∣−21δ2∣r∣≤δotherwise
下图比较了L2损失、L1损失和Huber损失:
横轴:预测残差 r = y − y ^ r = y - \hat{y} r=y−y^
纵轴:损失函数的值
左上方和右下出现了一些异常点,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) x∼Laplace(μ,b)=2b1exp(−b∣x−μ∣)
其中, μ \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(−b∣x−μ∣)
其中:
- μ \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πσ21exp(−2σ2(x−μ)2)
其中:
- μ \mu μ 是均值,决定了分布的中心位置。
- σ 2 > 0 \sigma^2 > 0 σ2>0 是方差,决定了分布的宽度。
高斯分布的特点:
- 对称性:关于 μ \mu μ 对称。
- 钟形曲线:分布呈现钟形,峰值位于均值 μ \mu μ 处,随着距离均值的增加,概率密度逐渐减小。
- 薄尾:尾部概率随着距离均值的增加迅速减小,对异常值不太敏感。
### 比较
- 形状:高斯分布呈现钟形曲线,而拉普拉斯分布则呈现尖峰厚尾的形状。
- 对异常值的敏感度:拉普拉斯分布对异常值更敏感,因为它的尾部更厚。
- 应用场景:高斯分布通常用于假设数据中不存在太多异常值的情况,而拉普拉斯分布则更适合处理包含异常值的数据。
在实际应用中,选择哪种分布取决于数据的特性和分析的目标。如果数据中存在较多的异常值,拉普拉斯分布可能是一个更好的选择;而如果数据相对稳定,高斯分布则更为合适。
未完待续……