机器学习—线性回归
线性回归是机器学习中有监督机器学习下的一种算法。 回归问题主要关注的是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系.需要预测的值:即目标变量,target,y,连续值预测变量。影响目标变量的因素:X1…XnX_1…X_nX1…Xn,可以是连续值也可以是离散值。因变量和自变量之间的关系:即模型,model,是我们要求解的。连续
本内容是博主自学机器学习总结的。由于博主水平有限,内容可能有些许错误。如有错误,请发在评论区。
1、基本概念
线性回归是机器学习中有监督机器学习下的一种算法。 回归问题主要关注的是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系.
需要预测的值:即目标变量,target,y,连续值预测变量。
影响目标变量的因素: X 1 … X n X_1…X_n X1…Xn,可以是连续值也可以是离散值。
因变量和自变量之间的关系:即模型,model,是我们要求解的。
1.1、连续值
连续值指的是可以在一个区间内取任意值的变量。例如,一个人的身高、体重、温度等都是连续值,因为它们可以在一定范围内取任何值。
表示:连续值通常用实数表示。
例子:
①:房价预测中,房屋的大小(平方米)。
②:销售额预测中,广告支出(元)。
1.2、离散值
离散值指的是只能取有限个或可数个值的变量。这些值通常是整数,并且它们之间的差距是固定的。
表示:离散值通常用整数表示。
例子:
①:预测学生考试成绩,自变量可能是学生参加的辅导班数量(0个、1个、2个…)。
②:预测汽车销量,自变量可能是月份(1月、2月、3月…)。
1.3、因变量和自变量的定义
在线性回归中,因变量和自变量有明确的定义:
-
因变量(响应变量):这是模型试图预测或解释的变量,通常记作 y y y。它依赖于一个或多个自变量的变化,因此也被称为响应变量或被解释变量。它是回归分析的目标,线性回归模型旨在通过自变量来解释其变化。
-
自变量(解释变量):这是用来解释或预测因变量的变量,通常记作 $ x $。它也被称为解释变量、预测变量或独立变量。在线性回归中,自变量的变化会对因变量产生一定的影响,模型通过估计自变量与因变量之间的线性关系来进行预测或推断。
在线性回归中,因变量和自变量之间的关系通常被表示为一个线性方程:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n + ϵ y = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n + \epsilon y=θ0+θ1x1+θ2x2+⋯+θnxn+ϵ
其中:
- y y y 是因变量,
- x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,…,xn 是自变量,
- θ 0 \theta_0 θ0 是截距项,
- θ 1 , θ 2 , … , θ n \theta_1, \theta_2, \dots, \theta_n θ1,θ2,…,θn 是自变量的回归系数,
- ϵ \epsilon ϵ是误差项。
这个方程反映了因变量如何随着自变量的变化而变化。
1.4、模型参数的解释
在线性回归中,模型参数包括截距和斜率,它们是解释自变量与因变量之间关系的关键。
- 截距$\theta_0 $:
截距是指当所有自变量的值为零时,因变量的预测值。换句话说,它表示回归线与 y y y-轴的交点。其解释为:
- 当所有自变量 x 1 , x 2 , ⋯ , x n x_1, x_2, \cdots, x_n x1,x2,⋯,xn 都为零时,因变量 y y y的估计值为 $ \theta_0$。
- 如果模型中没有任何自变量等于零的情况(例如在很多实际情况下),截距可以理解为一个基线值。
- 斜率 θ 1 , θ 2 , ⋯ , θ n \theta_1, \theta_2, \cdots, \theta_n θ1,θ2,⋯,θn:
斜率是线性回归中自变量对因变量的影响程度。每个自变量的斜率系数 θ i \theta_i θi代表该自变量每单位变化所引起的因变量的平均变化量。其解释为:
- 单变量线性回归:如果只有一个自变量 x x x,那么斜率 θ 1 \theta_1 θ1 表示 x x x 每增加1个单位时,因变量 y y y 预计增加或减少的量。
- 多变量线性回归:在多变量的情况下, θ i \theta_i θi表示在其他自变量保持不变的前提下,特定自变量 x i x_i xi增加1个单位时,因变量 y y y 的平均变化量。
举例说明:
假设有一个简单的回归模型: y = 3 + 2 x y = 3 + 2x y=3+2x
- 截距 θ 0 = 3 \theta_0 = 3 θ0=3:当 x = 0 x = 0 x=0时,预测的 y y y 值为 3。
- 斜率 β 1 = 2 \beta_1 = 2 β1=2:当 x x x 增加 1 个单位时, y y y 将增加 2 个单位。
通过这些参数,我们能够理解和解释自变量与因变量之间的线性关系,进而用于预测或推断。
2、简单线性回归
2.1、简单线性回归模型函数
简单线性回归模型的目标是找到一条直线,这条直线最好地拟合自变量和因变量之间的关系。这条直线的方程通常表示为: y = θ 0 + θ 1 x + ϵ y = \theta_0 + \theta_1x + \epsilon y=θ0+θ1x+ϵ
其中:
-
y y y是因变量(目标值);。
-
x x x是自变量(预测变量)。
-
θ 0 \theta_0 θ0是截距项(当 x = 0 x = 0 x=0 时 $ y $ 的值)。
-
θ 1 \theta_1 θ1 是斜率(自变量 $ x $ 变化一个单位时,因变量$ y$ 的平均变化量)。
-
$\epsilon $是误差项(实际值与预测值之间的差异)。
2.2、最小二乘法的原理和计算步骤
最小二乘法(Ordinary Least Squares, OLS)是线性回归中用于估计模型参数(截距和斜率)的标准方法。它通过使预测值与实际值之间的误差平方和最小化,找到最佳拟合的回归直线。
最小二乘法的原理:
最小二乘法的目标是找到回归模型的参数截距 θ 0 \theta_0 θ0 和斜率 θ 1 \theta_1 θ1,使得模型的预测值 y ^ \hat{y} y^ 和实际真实值 y y y之间的误差平方和最小化。误差通常指的是残差,即实际值与模型预测值之间的差异。
给定一组数据点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x_1, y_1), (x_2, y_2), ..., (x_n, y_n) (x1,y1),(x2,y2),...,(xn,yn),简单线性回归模型可以表示为: y i = θ 0 + θ 1 x i + ϵ i y_i = \theta_0 + \theta_1 x_i + \epsilon_i yi=θ0+θ1xi+ϵi。
其中 y i y_i yi是第 i i i个真实值, ϵ i \epsilon_i ϵi是残差。
残差平方和 R S S RSS RSS的定义为:
R S S = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − ( θ 0 + θ 1 x i ) ) 2 RSS = \sum_{i=1}^{n} (y_i - \hat{y_i})^2 = \sum_{i=1}^{n} \left( y_i - (\theta_0 + \theta_1 x_i) \right)^2 RSS=∑i=1n(yi−yi^)2=∑i=1n(yi−(θ0+θ1xi))2
最小二乘法的核心原理是找到 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 的值,使得这个残差平方和达到最小。
计算步骤:
-
收集数据:首先,准备一组包含 x x x 和 y y y 数据点的观测值,即 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) (x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n) (x1,y1),(x2,y2),⋯,(xn,yn)。
-
构建目标函数:根据数据点和线性模型 y = θ 0 + θ 1 x y = \theta_0 + \theta_1 x y=θ0+θ1x,构建残差平方和函数:
R S S = ∑ i = 1 n ( y i − ( θ 0 + θ 1 x i ) ) 2 RSS = \sum_{i=1}^{n} \left( y_i - (\theta_0 + \theta_1 x_i) \right)^2 RSS=∑i=1n(yi−(θ0+θ1xi))2
-
对模型参数求偏导数:
为了最小化 R S S RSS RSS,分别对 θ 0 \theta_0 θ0和 θ 1 \theta_1 θ1求偏导数,并令偏导数为零,以获得最优参数。对 θ 0 \theta_0 θ0求偏导数:
∂ R S S ∂ θ 0 = − 2 ∑ i = 1 n ( y i − θ 0 − θ 1 x i ) = 0 \frac{\partial RSS}{\partial \theta_0} = -2 \sum_{i=1}^{n} (y_i - \theta_0 - \theta_1 x_i) = 0 ∂θ0∂RSS=−2∑i=1n(yi−θ0−θ1xi)=0对 β 1 \beta_1 β1求偏导数:
∂ R S S ∂ θ 1 = − 2 ∑ i = 1 n ( y i − θ 0 − θ 1 x i ) x i = 0 \frac{\partial RSS}{\partial \theta_1} = -2 \sum_{i=1}^{n} (y_i - \theta_0 - \theta_1 x_i) x_i = 0 ∂θ1∂RSS=−2∑i=1n(yi−θ0−θ1xi)xi=0
-
求解方程组:
通过对这两个方程求解,得到 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 的最优解。最终的解可以写为: θ 1 = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 \theta_1 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{n} (x_i - \bar{x})^2} θ1=∑i=1n(xi−xˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
其中 x ˉ \bar{x} xˉ 和 y ˉ \bar{y} yˉ分别是 x x x和 y y y的均值。
θ 0 = y ˉ − θ 1 x ˉ \theta_0 = \bar{y} - \theta_1 \bar{x} θ0=yˉ−θ1xˉ
-
代入模型:
将计算得到的 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 代入线性回归方程 y = θ 0 + θ 1 x y = \theta_0 + \theta_1 x y=θ0+θ1x,从而得到最终的回归模型。
总结:
最小二乘法的主要步骤包括:
- 计算数据的均值 x ˉ \bar{x} xˉ和 y ˉ \bar{y} yˉ;
- 使用公式求解斜率 θ 1 \theta_1 θ1和截距 θ 0 \theta_0 θ0;
- 最后将这些参数代入线性方程,构建回归模型。
这个模型使得数据点与回归线的距离平方和最小,从而得到了最优的拟合结果。
3、多元线性回归
多元线性回归(Multiple Linear Regression)是线性回归的一种扩展,它涉及两个或两个以上的自变量(预测变量)来预测一个因变量(响应变量)。多元线性回归模型可以帮助我们理解多个自变量如何共同影响一个因变量。
3.1、多元线性回归的模型函数
多元线性回归模型的一般形式可以表示为: y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n + ϵ y = \theta_0 + \theta_1x_1 + \theta_2x_2 + \cdots + \theta_nx_n + \epsilon y=θ0+θ1x1+θ2x2+⋯+θnxn+ϵ
其中:
-
y y y 是因变量(目标值)。
-
x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,…,xn是自变量(预测变量),也可以称为特征。
-
β 0 \beta_0 β0 是截距项。
-
θ 1 , θ 2 , ⋯ , θ n \theta_1, \theta_2, \cdots, \theta_n θ1,θ2,⋯,θn 是各自变量的系数。
-
ϵ \epsilon ϵ 是误差项,表示模型无法解释的随机变异。
3.2、多元线性回归模型的向量表示
1、我们可以将上述模型表示为向量形式: y = θ T x + ϵ y = {\theta}^{T}x + \mathbf{\epsilon} y=θTx+ϵ
其中:
- 参数向量 θ = [ θ 0 θ 1 θ 2 ⋮ θ n ] \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \end{bmatrix} θ= θ0θ1θ2⋮θn
- 特征向量 x = [ 1 x 1 x 2 ⋮ x n ] x = \begin{bmatrix} 1 \\ x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} x= 1x1x2⋮xn
2、我们可以将上述模型表示为向量形式: Y = X θ + ϵ \mathbf{Y} = \mathbf{X} \mathbf{\theta} + \mathbf{\epsilon} Y=Xθ+ϵ
- Y \mathbf{Y} Y是一个 m × 1 m \times 1 m×1 的向量,包含所有的因变量值。
- X \mathbf{X} X 是一个 m × ( n + 1 ) m \times (n+1) m×(n+1) 的矩阵,包含所有的自变量值,其中每一行对应一个观测值(每一行代表一个样本),每一列代表一个自变量(每一列对应一个特征),第一列是1(用于截距项 θ 0 \theta_0 θ0)。
- θ \mathbf{\theta} θ 是一个 ( n + 1 ) × 1 (n+1) \times 1 (n+1)×1 的向量,包含所有的系数,包括截距项 θ 0 \theta_0 θ0和其他自变量的系数 θ 1 , θ 2 , ⋯ , θ n \theta_1, \theta_2, \cdots, \theta_n θ1,θ2,⋯,θn。
- ϵ \mathbf{\epsilon} ϵ 是一个 m × 1 m \times 1 m×1 的向量,包含所有的误差项。
其中:
具体来说,假设数据集包含 m m m个观测值/观测样本,每个样本有 n n n个自变量,向量和矩阵可以表示为:
-
Y = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] \mathbf{Y} = \begin{bmatrix} y^{(1)} \\ y^{(2) }\\ \vdots \\y^{(m)} \end{bmatrix} Y= y(1)y(2)⋮y(m)
-
X = [ 1 x 1 ( 1 ) x 2 ( 1 ) ⋯ x n ( 1 ) 1 x 1 ( 2 ) x 2 ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 x 1 ( m ) x 2 ( m ) ⋯ x n ( m ) ] \mathbf{X} = \begin{bmatrix} 1 & x^{(1)}_{1} & x^{(1)}_{2} & \cdots & x^{(1)}_{n} \\ 1 & x^{(2)}_{1} & x^{(2)}_{2} & \cdots & x^{(2)}_{n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x^{(m)}_{1} & x^{(m)}_{2} & \cdots & x^{(m)}_{n} \end{bmatrix} X= 11⋮1x1(1)x1(2)⋮x1(m)x2(1)x2(2)⋮x2(m)⋯⋯⋱⋯xn(1)xn(2)⋮xn(m)
-
θ = [ θ 0 θ 1 ⋮ θ n ] \boldsymbol{\theta} = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} θ= θ0θ1⋮θn
-
ϵ = [ ϵ 1 ϵ 2 ⋯ ϵ m ] \boldsymbol{\epsilon} = \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \cdots \\ \epsilon_m \end{bmatrix} ϵ= ϵ1ϵ2⋯ϵm
-
[ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] = [ 1 x 1 ( 1 ) x 2 ( 1 ) ⋯ x n ( 1 ) 1 x 1 ( 2 ) x 2 ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 x 1 ( m ) x 2 ( m ) ⋯ x n ( m ) ] [ θ 0 θ 1 ⋮ θ n ] + [ ϵ 1 ϵ 2 ⋮ ϵ m ] \begin{bmatrix} y^{(1)} \\ y^{(2) }\\ \vdots \\y^{(m)} \end{bmatrix} =\begin{bmatrix} 1 & x^{(1)}_{1} & x^{(1)}_{2} & \cdots & x^{(1)}_{n} \\ 1 & x^{(2)}_{1} & x^{(2)}_{2} & \cdots & x^{(2)}_{n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x^{(m)}_{1} & x^{(m)}_{2} & \cdots & x^{(m)}_{n} \end{bmatrix} \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_m \end{bmatrix} y(1)y(2)⋮y(m) = 11⋮1x1(1)x1(2)⋮x1(m)x2(1)x2(2)⋮x2(m)⋯⋯⋱⋯xn(1)xn(2)⋮xn(m) θ0θ1⋮θn + ϵ1ϵ2⋮ϵm
= [ θ 0 + θ 1 x 1 ( 1 ) + θ 2 x 2 ( 1 ) + ⋯ + θ n x n ( 1 ) θ 0 + θ 1 x 1 ( 2 ) + θ 2 x 2 ( 2 ) + ⋯ + θ n x n ( 2 ) ⋮ θ 0 + θ 1 x 1 ( m ) + θ 2 x 2 ( m ) + ⋯ + θ n x n ( m ) ] + [ ϵ 1 ϵ 2 ⋮ ϵ m ] =\begin{bmatrix} \theta_0 + \theta_1x^{(1)}_1 + \theta_2x^{(1)}_2 + \cdots + \theta_nx^{(1)}_n \\ \theta_0 + \theta_1x^{(2)}_1 + \theta_2x^{(2)}_2 + \cdots + \theta_nx^{(2)}_n \\ \vdots \\ \theta_0 + \theta_1x^{(m)}_1 + \theta_2x^{(m)}_2 + \cdots + \theta_nx^{(m)}_n \end{bmatrix} +\begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_m \end{bmatrix} = θ0+θ1x1(1)+θ2x2(1)+⋯+θnxn(1)θ0+θ1x1(2)+θ2x2(2)+⋯+θnxn(2)⋮θ0+θ1x1(m)+θ2x2(m)+⋯+θnxn(m) + ϵ1ϵ2⋮ϵm
= [ θ 0 + θ 1 x 1 ( 1 ) + θ 2 x 2 ( 1 ) + ⋯ + θ n x n ( 1 ) + ϵ 1 θ 0 + θ 1 x 1 ( 2 ) + θ 2 x 2 ( 2 ) + ⋯ + θ n x n ( 2 ) + ϵ 2 ⋮ θ 0 + θ 1 x 1 ( m ) + θ 2 x 2 ( m ) + ⋯ + θ n x n ( m ) + ϵ m ] =\begin{bmatrix} \theta_0 + \theta_1x^{(1)}_1 + \theta_2x^{(1)}_2 + \cdots + \theta_nx^{(1)}_n+\epsilon_1 \\ \theta_0 + \theta_1x^{(2)}_1 + \theta_2x^{(2)}_2 + \cdots + \theta_nx^{(2)}_n+\epsilon_2 \\ \vdots \\ \theta_0 + \theta_1x^{(m)}_1 + \theta_2x^{(m)}_2 + \cdots + \theta_nx^{(m)}_n+\epsilon_m \end{bmatrix} = θ0+θ1x1(1)+θ2x2(1)+⋯+θnxn(1)+ϵ1θ0+θ1x1(2)+θ2x2(2)+⋯+θnxn(2)+ϵ2⋮θ0+θ1x1(m)+θ2x2(m)+⋯+θnxn(m)+ϵm
3.3、利用最小二乘法求参数 θ \boldsymbol{\theta} θ
为了找到最优的回归系数 θ \boldsymbol{\theta} θ,我们使用最小二乘法。最小二乘法的目标是最小化误差平方和 R S S RSS RSS:
R S S = ∑ i = 1 m ( y i − y ^ i ) 2 = ( Y − X θ ) ⊤ ( Y − X θ ) 公式(1) RSS = \sum_{i=1}^{m} (y_i - \hat{y}_i)^2 = (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})^\top (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta}) \quad\text{公式(1)} RSS=∑i=1m(yi−y^i)2=(Y−Xθ)⊤(Y−Xθ)公式(1)
通过对这个表达式对 θ \boldsymbol{\theta} θ 求导,并令导数为零,可以得到最优的 θ \boldsymbol{\theta} θ的解析解。其计算公式为:
θ = ( X ⊤ X ) − 1 X ⊤ Y 公式(2) \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y}\quad\text{公式(2)} θ=(X⊤X)−1X⊤Y公式(2)
注:当 X ⊤ X \mathbf{X}^\top \mathbf{X} X⊤X 可逆时,线性回归模型存在唯一解。
步骤:
- 计算 X ⊤ X \mathbf{X}^\top \mathbf{X} X⊤X:首先,计算自变量矩阵 X \mathbf{X} X 的转置与 $\mathbf{X} $ 相乘,得到一个 ( n + 1 ) × ( n + 1 ) (n+1) \times (n+1) (n+1)×(n+1)的矩阵。
- 计算 X ⊤ Y \mathbf{X}^\top \mathbf{Y} X⊤Y:然后,计算自变量矩阵 X \mathbf{X} X 的转置与因变量向量 Y \mathbf{Y} Y相乘,得到一个 ( n + 1 ) × 1 (n+1) \times 1 (n+1)×1 的向量。
- 计算 ( X ⊤ X ) − 1 (\mathbf{X}^\top \mathbf{X})^{-1} (X⊤X)−1:对 X ⊤ X \mathbf{X}^\top \mathbf{X} X⊤X 矩阵求逆。
- 计算 θ \boldsymbol{\theta} θ:最后,计算 θ = ( X ⊤ X ) − 1 X ⊤ Y \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y} θ=(X⊤X)−1X⊤Y,得到 ( n + 1 ) × 1 (n+1) \times 1 (n+1)×1的回归系数向量。
举例:
假设我们有 3 个观测点,2 个自变量,数据如下:
| Y \mathbf{Y} Y | x 1 x_1 x1 | x 2 x_2 x2 |
|---|---|---|
| 5 | 1 | 4 |
| 7 | 2 | 5 |
| 8 | 3 | 6 |
- 构建自变量矩阵 X \mathbf{X} X:
X = [ 1 1 4 1 2 5 1 3 6 ] \mathbf{X} =\begin{bmatrix}1 & 1 & 4 \\1 & 2 & 5 \\1 & 3 & 6\end{bmatrix} X= 111123456
- 构建因变量向量 Y \mathbf{Y} Y:
Y = [ 5 7 8 ] \mathbf{Y} =\begin{bmatrix}5 \\7 \\8\end{bmatrix} Y= 578
- 计算 X ⊤ X \mathbf{X}^\top \mathbf{X} X⊤X:
X ⊤ X = [ 1 1 1 1 2 3 ] \mathbf{X}^\top \mathbf{X} =\begin{bmatrix}1 & 1 & 1 \\1 & 2 & 3\end{bmatrix} X⊤X=[111213]
公式推导:
公式(1):
∑ i = 1 m ( y i − y ^ i ) 2 = ( y 1 − y ^ 1 ) ( y 1 − y ^ 1 ) + ⋯ + ( y m − y ^ m ) \sum_{i=1}^{m} (y_i - \hat{y}_i)^2=(y_1-\hat{y}_1)(y_1-\hat{y}_1)+\cdots+(y_m-\hat{y}_m) ∑i=1m(yi−y^i)2=(y1−y^1)(y1−y^1)+⋯+(ym−y^m)
= [ ( y 1 − y ^ 1 ) ⋯ ( y m − y ^ m ) ] × [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] = \begin{bmatrix}(y_1-\hat{y}_1) & \cdots & (y_m-\hat{y}_m) \end{bmatrix} \times \begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix} =[(y1−y^1)⋯(ym−y^m)]× (y1−y^1)⋮(ym−y^m)
= [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] T × [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] =\begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix} ^T \times \begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix} = (y1−y^1)⋮(ym−y^m) T× (y1−y^1)⋮(ym−y^m)
= ( Y − X θ ) ⊤ ( Y − X θ ) =(\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})^\top (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta}) =(Y−Xθ)⊤(Y−Xθ)
公式(2):
R S S = ( Y − X θ ) ⊤ ( Y − X θ ) = Y ⊤ Y − 2 Y ⊤ X θ + θ ⊤ X ⊤ X θ RSS = (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})^\top (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})= \mathbf{Y}^\top \mathbf{Y} - 2 \mathbf{Y}^\top \mathbf{X} \boldsymbol{\theta} + \boldsymbol{\theta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\theta} RSS=(Y−Xθ)⊤(Y−Xθ)=Y⊤Y−2Y⊤Xθ+θ⊤X⊤Xθ
∂ R S S ∂ θ = − 2 X ⊤ Y + 2 X ⊤ X θ = 0 \frac{\partial RSS}{\partial \boldsymbol{\theta}} = -2 \mathbf{X}^\top \mathbf{Y} + 2 \mathbf{X}^\top \mathbf{X} \boldsymbol{\theta}=0 ∂θ∂RSS=−2X⊤Y+2X⊤Xθ=0
X ⊤ X θ = X ⊤ Y \mathbf{X}^\top \mathbf{X} \boldsymbol{\theta} = \mathbf{X}^\top \mathbf{Y} X⊤Xθ=X⊤Y -> θ = ( X ⊤ X ) − 1 X ⊤ Y \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y} θ=(X⊤X)−1X⊤Y
4、损失函数
回归模型的损失函数(Loss Function)用于衡量模型预测值与实际值之间的差异,也称为误差度量。通过最小化损失函数,可以优化模型的参数,使得模型的预测结果更接近实际值。在回归问题中,常用的损失函数主要基于预测值和真实值之间的差异,常见的几种损失函数如下:
4.1、 均方误差
均方误差(Mean Squared Error, MSE)是回归问题中最常用的损失函数。它计算预测值 y ^ i \hat{y}_i y^i 与真实值 y i y_i yi之间误差的平方,并对所有样本取平均值。
公式为:
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1∑i=1n(yi−y^i)2
其中:
-
y i y_i yi 是第 i i i 个样本的真实值,
-
y ^ i \hat{y}_i y^i 是第 i i i个样本的预测值,
-
n n n 是样本的数量。
-
优点:MSE 给较大的误差更高的惩罚(因为平方项),因此在模型中突出较大的误差,适合处理较小噪声数据的情况。
-
缺点:对异常值非常敏感,因为大的误差会被平方放大。
4.2、 平均绝对误差
平均绝对误差(Mean Absolute Error, MAE)是另一个常用的损失函数,它计算预测值和真实值之间误差的绝对值,并取平均值。
公式为:
MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1∑i=1n∣yi−y^i∣
- 优点:MAE 相比 MSE 不会放大异常值的影响,因此对异常值更具鲁棒性。
- 缺点:在梯度下降中,MAE 的绝对值操作使得损失函数不可导(在零点处),需要进行特殊处理。
4.3、 Huber 损失函数
Huber 损失函数(Huber Loss)结合了 MSE 和 MAE 的优点,既能减少异常值的影响,又保留了 MSE 在较小误差下的敏感性。它通过引入一个阈值 δ \delta δ,当误差小于 δ \delta δ时,使用 MSE;当误差大于 δ \delta δ时,使用 MAE。
公式为:
L ( y i , y ^ i ) = { 1 2 ( y i − y ^ i ) 2 for ∣ y i − y ^ i ∣ ≤ δ δ ∣ y i − y ^ i ∣ − 1 2 δ 2 for ∣ y i − y ^ i ∣ > δ L(y_i, \hat{y}_i) = \begin{cases} \frac{1}{2} (y_i - \hat{y}_i)^2 & \text{for } |y_i - \hat{y}_i| \leq \delta \\ \delta |y_i - \hat{y}_i| - \frac{1}{2} \delta^2 & \text{for } |y_i - \hat{y}_i| > \delta \end{cases} L(yi,y^i)={21(yi−y^i)2δ∣yi−y^i∣−21δ2for ∣yi−y^i∣≤δfor ∣yi−y^i∣>δ
- 优点:Huber 损失对异常值的惩罚相对 MAE 和 MSE 适中,具有更好的鲁棒性。
- 缺点:需要选择适当的阈值 δ \delta δ,该参数对模型效果有较大影响。
4.4、 L2损失
L2损失(L2 Loss)函数,也称为最小二乘误差或均方误差(Mean Squared Error, MSE),是计算预测值和真实值之间差距的平方和。这种损失函数会给较大的误差更大的权重,因此在处理数据时更敏感于大的异常值。
公式为:
L2损失 = ∑ i = 1 n ( y i − y ^ i ) 2 \text{L2损失} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 L2损失=∑i=1n(yi−y^i)2
其中:
- y i y_i yi是第 i i i 个样本的真实值,
- y ^ i \hat{y}_i y^i 是第 i i i个样本的预测值,
- n n n 是样本数量。
或者平均化后的均方误差(MSE)为:
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1∑i=1n(yi−y^i)2
- 特性:L2损失将误差平方后进行加总,这意味着较大的误差会被放大,因此它对异常值非常敏感。
- 适用场景:适合数据中没有极端异常值的情况,能够在较小噪声下表现出较好的拟合效果。
- 梯度:L2损失的梯度是线性的,对于每个参数 θ \theta θ,更新时的梯度为 ∂ L 2 ∂ θ = 2 ( y − y ^ ) \frac{\partial L2}{\partial \theta} = 2 (y - \hat{y}) ∂θ∂L2=2(y−y^)。
4.5、 L1损失
L1损失(L1 Loss)函数,也称为绝对误差损失(Mean Absolute Error, MAE),是通过计算预测值与真实值之间的绝对差值来度量误差。相较于L2损失,L1损失对较大的误差惩罚较小,因此它更不容易受到异常值的影响。
公式为:
L1损失 = ∑ i = 1 n ∣ y i − y ^ i ∣ \text{L1损失} = \sum_{i=1}^{n} |y_i - \hat{y}_i| L1损失=∑i=1n∣yi−y^i∣
或者平均化后的平均绝对误差(MAE)为:
MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1∑i=1n∣yi−y^i∣
- 特性:L1损失对异常值更加鲁棒(稳定),因为它只对误差的绝对值进行加和,不会像L2损失那样平方放大大误差。
- 适用场景:适用于存在异常值的数据集,能够减少异常值对模型训练的影响。
- 梯度:L1损失的梯度为常数,梯度下降时,更新的方向为 ∂ L 1 ∂ θ = sign ( y − y ^ ) \frac{\partial L1}{\partial \theta} = \text{sign}(y - \hat{y}) ∂θ∂L1=sign(y−y^),其中 sign \text{sign} sign 表示符号函数,输出为 + 1 +1 +1 或 − 1 -1 −1,这使得 L1 损失在 y = y ^ y = \hat{y} y=y^点不可导(由于绝对值函数的非连续性)。
4.6、 L2损失与L1损失的比较
| 特性 | L2损失 | L1损失 |
|---|---|---|
| 公式 | ∑ i = 1 n ( y i − y ^ i ) 2 \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 ∑i=1n(yi−y^i)2 | ∑ i = 1 n y i − y ^ i \sum_{i=1}^{n} y_i - \hat{y}_i ∑i=1nyi−y^i |
| 别名 | 均方误差(MSE),二次误差 | 平均绝对误差(MAE),线性误差 |
| 异常值处理 | 对异常值敏感,容易受到大误差的影响 | 对异常值更加鲁棒,不易受到大误差的影响 |
| 梯度 | 线性梯度,容易收敛 | 常数梯度,收敛速度较慢 |
| 适用场景 | 数据中噪声较小,异常值较少 | 数据中存在异常值,鲁棒性要求较高 |
| 优化结果 | 结果更平滑,适合偏向平均值的模型 | 结果更稀疏,适合稀疏解的情况 |
5、模型估计
模型估计指的是通过已有的数据,利用一定的方法和算法来确定模型中的参数,以使模型能够有效地描述或预测数据中的关系。模型估计是统计建模和机器学习中非常重要的步骤,通过模型估计,我们可以得到描述数据和变量间关系的函数或方程。
5.1、 模型估计的目标
在回归分析、统计建模或机器学习中,模型的形式通常为:
y ^ = f ( X ; θ ) \hat{y} = f(\mathbf{X}; \boldsymbol{\theta}) y^=f(X;θ)
其中:
- y ^ \hat{y} y^ 是模型的预测结果(也称为因变量或响应变量)。
- X \mathbf{X} X 是输入数据(自变量或解释变量)。
- θ \boldsymbol{\theta} θ是模型的参数。
- f f f是模型函数形式(如线性、非线性或其他形式)。
模型估计的目标是找到最优的参数 θ \boldsymbol{\theta} θ,使得模型 f ( X ; θ ) f(\mathbf{X}; \boldsymbol{\theta}) f(X;θ)尽可能准确地拟合数据,从而能够在给定输入数据时输出接近实际值的预测结果。
5.2、常见的模型估计方法
不同的模型估计方法适用于不同类型的模型和数据。以下是几种常见的估计方法:
(1)最小二乘法
-
原理:最小二乘法(Least Squares Estimation, LSE)是一种经典的估计方法,特别适用于线性回归模型。它通过最小化预测值与真实值之间的平方误差和,来估计模型参数。
θ ^ = argmin θ ∑ i = 1 n ( y i − y ^ i ) 2 \hat{\boldsymbol{\theta}} = \underset{\boldsymbol{\theta}}{\text{argmin}} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 θ^=θargmin∑i=1n(yi−y^i)2
其中 y ^ i \hat{y}_i y^i 是模型的预测值, y i y_i yi是真实值。
最小二乘法有一个明确的解析解,特别是在简单的线性回归中:
θ = ( X ⊤ X ) − 1 X ⊤ Y \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y} θ=(X⊤X)−1X⊤Y这里 X \mathbf{X} X 是输入变量矩阵, Y \mathbf{Y} Y是实际输出值向量。
-
应用:线性回归、广义线性模型等。
(2)最大似然估计
-
原理:最大似然估计(Maximum Likelihood Estimation, MLE)是一种更通用的参数估计方法,适用于广泛的模型。它通过最大化模型产生观察数据的概率来估计参数。给定数据集 X \mathbf{X} X和参数 θ \boldsymbol{\theta} θ,最大似然估计的目标是找到能够使观测数据的似然函数(即数据出现的概率)最大化的参数。
似然函数:
L ( θ ; X ) = P ( X ∣ θ ) L(\boldsymbol{\theta}; \mathbf{X}) = P(\mathbf{X} | \boldsymbol{\theta}) L(θ;X)=P(X∣θ)
最大似然估计通过最大化对数似然函数来找到最优的参数: θ ^ = argmax θ log L ( θ ; X ) \hat{\boldsymbol{\theta}} = \underset{\boldsymbol{\theta}}{\text{argmax}} \log L(\boldsymbol{\theta}; \mathbf{X}) θ^=θargmaxlogL(θ;X)
-
应用:广泛应用于统计模型、逻辑回归、泊松回归、隐马尔可夫模型等。
(3)贝叶斯估计
-
原理:贝叶斯估计(Bayesian Estimation)基于贝叶斯定理,考虑参数的不确定性,将其看作是随机变量。贝叶斯估计通过结合先验信息(即在看到数据之前对参数的假设分布)和数据(通过似然函数)来更新对参数的估计。
贝叶斯定理的形式为:
P ( θ ∣ X ) = P ( X ∣ θ ) P ( θ ) P ( X ) P(\boldsymbol{\theta} | \mathbf{X}) = \frac{P(\mathbf{X} | \boldsymbol{\theta}) P(\boldsymbol{\theta})}{P(\mathbf{X})} P(θ∣X)=P(X)P(X∣θ)P(θ)其中, P ( θ ∣ X ) P(\boldsymbol{\theta} | \mathbf{X}) P(θ∣X)是后验分布, P ( X ∣ θ ) P(\mathbf{X} | \boldsymbol{\theta}) P(X∣θ)是似然函数, P ( θ ) P(\boldsymbol{\theta}) P(θ) 是先验分布。
贝叶斯估计通过计算后验分布来推断参数。
-
应用:贝叶斯回归、马尔可夫链蒙特卡洛(MCMC)方法、隐变量模型等。
(4)梯度下降法
-
原理:梯度下降(Gradient Descent)是一种迭代优化方法,常用于求解没有解析解或参数众多的模型。它通过计算损失函数相对于参数的梯度,沿着梯度的反方向更新参数,逐步逼近最优值。
梯度下降的更新公式:
θ j = θ j − α ∂ J ( θ ) ∂ θ j \theta_j = \theta_j - \alpha \frac{\partial J(\theta)}{\partial \theta_j} θj=θj−α∂θj∂J(θ)其中, α \alpha α是学习率, J ( θ ) J(\theta) J(θ) 是损失函数。
梯度下降适用于多种类型的损失函数和模型,尤其在深度学习中广泛应用。
-
应用:用于广泛的回归和分类模型,如线性回归、逻辑回归、神经网络等。
(5)正则化方法
-
岭回归(L2 正则化):
在实际应用中,如果特征矩阵 X X X 的列向量线性相关,即存在特征冗余,那么矩阵 X T X X^TX XTX 可能是不可逆的(奇异矩阵),这会导致最小二乘法无法直接求解参数 θ θ θ。
为了解决这个问题,我们可以使用正则化方法,其中一种常见的方法是岭回归(Ridge Regression),在损失函数中加入参数的平方和作为惩罚项:
J ( θ ) = ∑ i = 1 n ( y i − y ^ i ) 2 + λ ∑ j = 1 p θ j 2 J(\theta) = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} \theta_j^2 J(θ)=∑i=1n(yi−y^i)2+λ∑j=1pθj2
= ( y 1 − y ^ 1 ) ( y 1 − y ^ 1 ) + ⋯ + ( y m − y ^ m ) + λ [ θ 1 2 + ⋯ + θ j 2 ] =(y_1-\hat{y}_1)(y_1-\hat{y}_1)+\cdots+(y_m-\hat{y}_m)+\lambda[\theta_1^2+\cdots+\theta_j^2] =(y1−y^1)(y1−y^1)+⋯+(ym−y^m)+λ[θ12+⋯+θj2]
= [ ( y 1 − y ^ 1 ) ⋯ ( y m − y ^ m ) ] × [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] + λ [ θ 1 ⋯ θ p ] × [ θ 1 ⋮ θ p ] = \begin{bmatrix}(y_1-\hat{y}_1) & \cdots & (y_m-\hat{y}_m) \end{bmatrix} \times \begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix}+\lambda \begin{bmatrix}\theta_1 & \cdots & \theta_p \end{bmatrix}\times \begin{bmatrix} \theta_1 \\ \vdots \\\theta_p\end{bmatrix} =[(y1−y^1)⋯(ym−y^m)]× (y1−y^1)⋮(ym−y^m) +λ[θ1⋯θp]× θ1⋮θp
= [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] T × [ ( y 1 − y ^ 1 ) ⋮ ( y m − y ^ m ) ] + λ [ θ 1 ⋮ θ p ] T × [ θ 1 ⋮ θ p ] =\begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix} ^T \times \begin{bmatrix}(y_1-\hat{y}_1) \\ \vdots \\(y_m-\hat{y}_m)\end{bmatrix} +\lambda \begin{bmatrix} \theta_1 \\ \vdots \\\theta_p\end{bmatrix}^T \times \begin{bmatrix} \theta_1 \\ \vdots \\\theta_p\end{bmatrix} = (y1−y^1)⋮(ym−y^m) T× (y1−y^1)⋮(ym−y^m) +λ θ1⋮θp T× θ1⋮θp
= ( Y − X θ ) ⊤ ( Y − X θ ) + λ θ T θ =(\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})^\top (\mathbf{Y} - \mathbf{X} \boldsymbol{\theta})+\lambda \boldsymbol{\theta}^T\boldsymbol{\theta} =(Y−Xθ)⊤(Y−Xθ)+λθTθ
= Y ⊤ Y − 2 Y ⊤ X θ + θ ⊤ X ⊤ X θ + λ θ T θ =\mathbf{Y}^\top \mathbf{Y} - 2 \mathbf{Y}^\top \mathbf{X} \boldsymbol{\theta} + \boldsymbol{\theta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\theta}+\lambda \boldsymbol{\theta}^T \boldsymbol{\theta} =Y⊤Y−2Y⊤Xθ+θ⊤X⊤Xθ+λθTθ
= Y ⊤ Y − 2 Y ⊤ X θ + θ ⊤ ( X ⊤ X + λ I ) θ =\mathbf{Y}^\top \mathbf{Y} - 2 \mathbf{Y}^\top \mathbf{X} \boldsymbol{\theta} + \boldsymbol{\theta}^\top (\mathbf{X}^\top \mathbf{X} +\lambda I )\boldsymbol{\theta} =Y⊤Y−2Y⊤Xθ+θ⊤(X⊤X+λI)θ
通过对这个表达式对 θ \boldsymbol{\theta} θ 求导,并令导数为零,可以得到最优的 θ \boldsymbol{\theta} θ的解析解。其计算公式为:
∂ J ( θ ) ∂ θ = 2 X T X θ − 2 X T Y + 2 λ θ = 0 \frac{\partial J(\theta)}{\partial \boldsymbol{\theta}}=2X^TX\boldsymbol{\theta}-2X^TY+2\lambda\boldsymbol{\theta}=0 ∂θ∂J(θ)=2XTXθ−2XTY+2λθ=0
( X T X + λ I ) θ = X T Y (X^TX+\lambda I )\boldsymbol{\theta}=X^TY (XTX+λI)θ=XTY
θ = ( X ⊤ X + λ I ) − 1 X ⊤ Y \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X}+\lambda I)^{-1} \mathbf{X}^\top \mathbf{Y} θ=(X⊤X+λI)−1X⊤Y
( X ⊤ X + λ I ) (\mathbf{X}^\top \mathbf{X}+\lambda I) (X⊤X+λI)在 X T X X^TX XTX的基础上增加了一个扰动项 λ I \lambda I λI。此时不仅能够降低模型的复杂度、防止过拟合,而且能够使 ( X ⊤ X + λ I ) (\mathbf{X}^\top \mathbf{X}+\lambda I) (X⊤X+λI)可逆, θ \theta θ有唯一解。
-
Lasso回归(L1 正则化):在损失函数中加入参数的绝对值和作为惩罚项
J ( θ ) = ∑ i = 1 n ( y i − y ^ i ) 2 + λ ∑ j = 1 p ∣ θ j ∣ J(\theta) = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |\theta_j| J(θ)=∑i=1n(yi−y^i)2+λ∑j=1p∣θj∣
Lasso 可以产生稀疏解,即将部分参数估计为 0,从而起到变量选择的作用。
5.3、总结
模型估计是数据建模的核心步骤,选择合适的估计方法能够有效地获取模型的参数并提高模型的预测能力。最小二乘法、最大似然估计、贝叶斯估计等方法根据不同的假设和场景进行选择,而正则化方法和梯度下降等技术则用于处理复杂模型和数据的挑战。
6、模型评估指标
模型评估指标是用于衡量机器学习模型或统计模型的性能和效果的重要标准。通过这些指标,可以评估模型在训练集和测试集上的表现,从而判断模型的准确性、稳健性、以及泛化能力。
根据不同的任务(如回归任务或分类任务),模型评估指标有所不同。以下是常见的模型评估指标及其解释:
6.1. 回归模型评估指标
回归模型的评估指标用于衡量模型对连续值的预测精度。常见的评估指标包括:
(1)均方误差
-
定义:均方误差(Mean Squared Error, MSE)衡量模型预测值与真实值之间误差的平方和的均值。
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1∑i=1n(yi−y^i)2其中, y i y_i yi是真实值, y ^ i \hat{y}_i y^i 是预测值, n n n 是样本数。
-
优点:对大误差更为敏感,因此适用于希望严惩大误差的场景。
(2)均方根误差
-
定义:均方根误差(Root Mean Squared Error, RMSE) 是 MSE 的平方根,用于保持与原始数据相同的量纲。
RMSE = MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{RMSE} = \sqrt{\text{MSE}} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=MSE=n1∑i=1n(yi−y^i)2 -
解释:RMSE 可以直接反映预测误差的尺度,与实际数据的单位一致,便于理解和比较。
(3)平均绝对误差
-
定义:平均绝对误差(Mean Absolute Error, MAE)衡量模型预测值与真实值之间绝对误差的均值。
MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1∑i=1n∣yi−y^i∣ -
优点:对异常值不敏感,适用于含有噪声的场景。
(4)决定系数
-
定义:决定系数(R-squared, $ R^2$)用于评估模型对数据的拟合优度。它表示实际值的总方差中有多少能够被模型解释。
R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2
其中, y ˉ \bar{y} yˉ 是真实值的均值。
-
解释: R 2 R^2 R2 的取值范围为 0 到 1,数值越接近 1 表明模型的解释力越强,拟合效果越好。
(5)调整后的决定系数
-
定义:调整后的 R 2 R^2 R2考虑了模型中变量的数量,以避免由于增加变量数量而人为提高 R 2 R^2 R2值。
R adjusted 2 = 1 − ( 1 − R 2 ) n − 1 n − p − 1 R^2_{\text{adjusted}} = 1 - (1 - R^2) \frac{n - 1}{n - p - 1} Radjusted2=1−(1−R2)n−p−1n−1其中, n n n 是样本数, p p p 是模型中的自变量个数。
-
解释:当增加无关变量时,调整后的 R 2 R^2 R2会减少,从而更好地评估模型的真正拟合能力。
6.2. 其他通用评估指标
这些评估指标可以适用于不同类型的模型和任务:
(1)交叉验证
-
定义:交叉验证(Cross-Validation)是一种通过将数据集划分为训练集和验证集,并多次重复训练和验证过程的方式来评估模型性能的方法。常见的交叉验证方法包括 K 折交叉验证(K-fold cross-validation)。
-
作用:避免模型过拟合,并提供模型在不同数据集上的稳健性评估。
(2)AIC和 BIC
-
定义:AIC (Akaike Information Criterion)和 BIC(Bayesian Information Criterion) 是用于衡量模型复杂度和拟合优度的指标,通常用于模型选择。
-
AIC 的定义:
AIC = 2 k − 2 log ( L ) \text{AIC} = 2k - 2\log(L) AIC=2k−2log(L)
其中 k k k 是参数个数, L L L是最大似然函数值。
-
BIC 的定义:
BIC = k log ( n ) − 2 log ( L ) \text{BIC} = k \log(n) - 2\log(L) BIC=klog(n)−2log(L)
其中 n n n 是样本数。
-
-
作用:AIC 和 BIC 用于选择平衡复杂性和拟合效果的最优模型,值越小越好。
6.3、总结
模型评估指标是衡量模型性能的关键工具。选择合适的评估指标有助于判断模型的预测能力和泛化能力,进而指导模型的优化和改进。对于回归模型,MSE、MAE、 R 2 R^2 R2 等指标衡量模型的预测精度;对于分类模型,精确率、召回率、F1 值等指标衡量模型对
学习中的疑惑解析:
关于代价函数、损失函数、目标函数
- 能够描述 y ^ \hat{y} y^ 与 y y y 之间差别的函数叫做损失函数,即 L ( y , y ^ ) L(y,\hat{y}) L(y,y^)或 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x))
- 我们用损失函数描述一个训练数据的损失,用代价函数来描述整体的损失。代价函数一般写作 J ( θ ) J(\theta) J(θ)。
-
损失函数(Loss Function):
- 损失函数是一个衡量模型预测值与实际值之间差异的函数。它通常用于评估单个样本的预测误差。
- 常见的损失函数包括均方误差(Mean Squared Error, MSE)、交叉熵损失(Cross-Entropy Loss)、绝对误差(Mean Absolute Error, MAE)等。
- 损失函数的目的是量化模型在单个数据点上的性能。
-
代价函数(Cost Function):
- 代价函数通常是指在整个训练集上损失函数的平均值,它衡量了模型在整个训练集上的性能。
- 代价函数是损失函数在所有训练样本上的总和,通常用于优化模型参数。
- 例如,对于线性回归问题,代价函数可以是所有样本的均方误差之和。
-
目标函数(Objective Function):
- 目标函数是优化问题中需要最小化或最大化的函数。在机器学习中,目标函数通常指的是代价函数。
- 目标函数不仅包括损失函数,还可能包括正则化项(如L1或L2正则化),以防止模型过拟合。
- 目标函数的目的是找到模型参数,使得整个训练集上的预测误差最小化。
总结来说,损失函数是针对单个样本的误差度量,代价函数是损失函数在整个训练集上的平均值,而目标函数是优化过程中需要最小化或最大化的函数,通常包括代价函数和可能的正则化项。在实际应用中,这三个概念经常互换使用,但它们在形式和用途上略有区别。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)