第三章 线性模型
第三章 线性模型
3.1 基本形式
3.1.1 什么是线性模型
线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b (3.1) f(\mathbb{x}) = w_1x_1 + w_2x_2+...+w_dx_d+b \tag{3.1} f(x)=w1x1+w2x2+...+wdxd+b(3.1)
一般用向量形式写成
f ( x ) = w T x + b (3.2) f(\mathbb{x})=\mathbf{w}^\text{T}\mathbf{x}+{b} \tag{3.2} f(x)=wTx+b(3.2)
其中 w = ( w 1 ; w 2 ; . . . ; w d ) \mathbf{w}=(w_1;w_2;...;w_d) w=(w1;w2;...;wd)。 w \mathbf{w} w 和 b b b 学得之后,模型就得以确定。
3.1.2 线性模型的特点
线性模型是机器学习中一类重要的模型,它具有以下特点:
-
线性关系:线性模型假设输入特征与输出之间存在线性关系。这意味着输出的预测是输入特征的线性组合,通过权重和偏置项进行加权求和。
-
可解释性:线性模型具有很好的可解释性。由于其简单的数学形式,我们可以直接观察特征权重的大小和符号来理解特征对输出的影响。这对于解释模型的预测结果和进行特征选择非常有用。
-
计算效率:线性模型通常计算效率高。由于其简单的形式,训练和预测的速度通常比复杂的模型要快,特别是在处理大规模数据集时。
-
鲁棒性:线性模型对于数据中的噪声和异常值相对较为鲁棒。由于线性模型的输出是基于输入特征的线性组合,异常值对整体模型的影响通常较小。
-
拟合能力:线性模型的拟合能力有限。它只能对线性关系进行建模,对于复杂的非线性问题可能表现不佳。然而,可以通过引入特征的高次项、交互项或应用基于核函数的技巧来扩展线性模型的拟合能力。
-
判别式模型:线性模型通常是判别式模型,而不是生成式模型。它们主要关注预测输出,而不是建模输入与输出的联合分布。这使得线性模型在处理分类和回归问题时非常有效。
尽管线性模型具有一些限制,但在许多实际应用中仍然非常有用。它们在特征工程、预测任务和解释模型方面提供了简单而强大的工具。
3.2 线性回归
3.2.1 什么是线性回归
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(\mathbb{x}_1,y_1), (\mathbb{x}_2,y_2),...,(\mathbb{x}_m,y_m)\} D={(x1,y1),(x2,y2),...,(xm,ym)},其中 x i = ( x i 1 ; x i 2 ; . . . ; x i d ) , y i ∈ R \mathbb{x_i}=(x_{i1};x_{i2};...;x_{id}), y_i\in\mathbb{R} xi=(xi1;xi2;...;xid),yi∈R。“线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
3.2.2 一元线性回归均方误差(Mean Squared Error)
均方误差是回归任务中最常用的性能度量。
线性回归试图求得
f ( x i ) = w x i + b , 使得 f ( x i ) ≈ y i (3.3) f(x_i)=wx_i + b,\text{使得}f(x_i) \approx y_i \tag{3.3} f(xi)=wxi+b,使得f(xi)≈yi(3.3)
均方误差的表达式为 1 n ∑ i = 1 m ( f ( x i ) − y i ) 2 \frac{1}{n}\sum_{i=1}^m(f(x_i)-y_i)^2 n1∑i=1m(f(xi)−yi)2 。
3.2.3 一元线性回归最小二乘法(Least Square Method)与最小二乘 “参数估计(parameter estimation)”
基于均方误差最小化来进行模型求解的方法称为 “最小二乘法”。
求解 w w w 和 b b b 使 E w , b = ∑ i = 1 m ( y i − w x i − b ) 2 E_{w,b}=\sum_{i=1}^m(y_i - wx_i -b )^2 Ew,b=∑i=1m(yi−wxi−b)2 最小化的过程,称为线性回归模型的最小二乘"参数估计"。
3.2.4 一元线性回归最小二乘法求解 ( w ∗ , b ∗ ) (w^*, b^* ) (w∗,b∗) 过程
由于样本数目 n n n 使常数,因此最小化均方误差、来求解 ( w ∗ , b ∗ ) (w^*, b^*) (w∗,b∗) 的过程,可以表示为
( w ∗ , b ∗ ) = arg min ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 (3.4) (w^*,b^*) = \argmin_{(w,b)} \sum_{i=1}^m(f(x_i)-y_i)^2 \\ =\argmin_{(w,b)} \sum_{i=1}^m(y_i-wx_i-b)^2 \tag{3.4} (w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2(3.4)
求解这个过程表达式的过程中,我们分别对 w w w 与 b b b 求导,可得
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) (3.5) \frac{\partial_{E_{(w,b)}}}{\partial_w}=2 \Bigl( w\sum_{i=1}^mx_i^2 - \sum_{i=1}^m(y_i-b)x_i \Bigr) \tag{3.5} ∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)(3.5)
∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) (3.6) \frac{\partial_{E_{(w,b)}}}{\partial_b}=2 \Bigl( mb - \sum_{i=1}^m(y_i-wx_i)\Bigr) \tag{3.6} ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))(3.6)
令 式(3.5)与 (3.6)为零,即可得到 w w w 和 b b b 最优解的闭式(closed-form)
2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) = 0 ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − b ) x i ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − ( y ‾ − w x ‾ ) ) x i ⟹ w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − y ‾ ) x i + w x ‾ ∑ i = 1 m x i ⟹ w ( ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i ) = ∑ i = 1 m ( y i − y ‾ ) x i ⟹ w = ∑ i = 1 m ( y i − y ‾ ) x i ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i (3.7) 2 \Bigl( w\sum_{i=1}^m x_i^2 - \sum_{i=1}^m(y_i-b)x_i \Bigr) = 0 \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m(y_i-b)x_i \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m(y_i- (\overline{y}-w\overline{x}))x_i \\ \Longrightarrow w\sum_{i=1}^m x_i^2 = \sum_{i=1}^m (y_i - \overline{y})x_i + w\overline{x}\sum_{i=1}^m x_i \\ \Longrightarrow w\Bigl(\sum_{i=1}^mx_i^2 - \overline{x}\sum_{i=1}^mx_i\Bigr) = \sum_{i=1}^m(y_i-\overline y)x_i \\ \Longrightarrow w=\frac{\sum_{i=1}^m(y_i-\overline y)x_i}{\sum_{i=1}^mx_i^2 - \overline{x}\sum_{i=1}^mx_i} \tag{3.7} 2(wi=1∑mxi2−i=1∑m(yi−b)xi)=0⟹wi=1∑mxi2=i=1∑m(yi−b)xi⟹wi=1∑mxi2=i=1∑m(yi−(y−wx))xi⟹wi=1∑mxi2=i=1∑m(yi−y)xi+wxi=1∑mxi⟹w(i=1∑mxi2−xi=1∑mxi)=i=1∑m(yi−y)xi⟹w=∑i=1mxi2−x∑i=1mxi∑i=1m(yi−y)xi(3.7)
2 ( m b − ∑ i = 1 m ( y i − w x i ) ) = 0 ⟹ m b = ∑ i = 1 m ( y i − w x i ) ⟹ b = 1 m ∑ i = 1 m ( y i − w x i ) ⟹ b = y ‾ − w x ‾ (3.8) 2 \Bigl( mb - \sum_{i=1}^m(y_i-wx_i)\Bigr) = 0 \\ \Longrightarrow mb = \sum_{i=1}^m(y_i-wx_i) \\ \Longrightarrow b = \frac{1}{m} \sum_{i=1}^m(y_i-wx_i) \ \Longrightarrow b = \overline{y} -w\overline{x} \tag{3.8} 2(mb−i=1∑m(yi−wxi))=0⟹mb=i=1∑m(yi−wxi)⟹b=m1i=1∑m(yi−wxi) ⟹b=y−wx(3.8)
3.2.5 多元线性回归
这里需要与前面区分一下,前面提到的 w w w 与 b b b 指代的都是单个实数,即需要求解两个参数的具体值。而我们拿到的采样值 x i x_i xi 指的是同一个属性在不同样本上的值。注意这里强调的是同一属性。
接着引入多元线性回归很清楚了:我们试图学得
f ( x i ) = w T x i + b , 使得 f ( x i ) ≃ y i f\left(\boldsymbol{x}_i\right)=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b \text {, 使得 } f\left(\boldsymbol{x}_i\right) \simeq y_i f(xi)=wTxi+b, 使得 f(xi)≃yi
这称为 “多元线性回归”(multivariate linear regression)
3.2.6 多元线性回归的求解
这里我们省略了具体求解过程,道理与前面的一元线性回归相同。
我们需要求解的是,
w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ ) (3.9) \hat{\boldsymbol{w}}^*=\underset{\hat{\boldsymbol{w}}}{\arg \min }(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) \tag{3.9} w^∗=w^argmin(y−Xw^)T(y−Xw^)(3.9)
最终求解结果为:
w ^ ∗ = ( X T X ) − 1 X T y (3.11) \hat{\boldsymbol{w}}^*=\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y} \tag{3.11} w^∗=(XTX)−1XTy(3.11)
其中 ( X T X ) − 1 \left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} (XTX)−1 是矩阵 ( X T X ) \left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right) (XTX) 的逆矩阵。
为了方便,令 x i ^ = ( x i ; 1 ) \hat{\mathbf{x}_i}=\left(\mathbf{x}_i;1\right) xi^=(xi;1),则最终学得的多元线性回归模型为:
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y (3.12) f\left(\hat{\boldsymbol{x}}_i\right)=\hat{\boldsymbol{x}}_i^{\mathrm{T}}\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y} \tag{3.12} f(x^i)=x^iT(XTX)−1XTy(3.12)
3.2.7 满秩矩阵与非满秩矩阵
满秩矩阵 (Full Rank Matrix) 是指一个矩阵的行秩(Row Rank)和列秩(Column Rank)相等,并且等于矩阵的行数(或列数)。换句话说,一个满秩矩阵是一个没有冗余信息的矩阵,其行和列都是线性独立的。
满秩矩阵的特点包括:
- 矩阵的行向量或列向量组成一个线性无关的集合。
- 矩阵的行向量和列向量的数量相等,且等于矩阵的行数(或列数)。
- 矩阵的行向量和列向量的秩等于矩阵的行数(或列数)。
非满秩矩阵(Rank-Deficient Matrix) 是指一个矩阵的秩小于它的行数(或列数)。换句话说,非满秩矩阵中存在一些行或列是线性相关的,或者说存在冗余信息。
非满秩矩阵在线性代数和矩阵理论中也有一些重要的应用和性质,包括:
- 非满秩矩阵的逆矩阵不存在。只有满秩矩阵才具有逆矩阵。
- 非满秩矩阵的行空间和列空间的维数小于矩阵的行数和列数,即存在零空间。
- 在线性方程组的求解中,非满秩矩阵可能会有无穷多个解,因为存在自由变量。
非满秩矩阵数据一般可解出多个 ( w ^ ) \left(\hat{\mathbf{w}}\right) (w^),它们都能使均方误差最小化。选择哪一个解作为输出将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)项。
3.2.8 对数线性回归(log-linear regression)
对数线性回归实际上在试图让 e w T x + b e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b} ewTx+b 逼近 y \mathcal{y} y。
3.2.9 广义线性模型(generalized linear model)
更一般地,考虑单调可微函数 g ( ⋅ ) \mathcal{g(\cdot)} g(⋅),令
y = g − 1 ( w T x + b ) (3.15) y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right) \tag{3.15} y=g−1(wTx+b)(3.15)
这样得到的模型称为 “广义线性模型”,其中函数 g ( ⋅ ) \mathcal{g}(\cdot) g(⋅) 称为 “联系函数(link function)”。显然,对数线性回归是广义线性模型在 g ( ⋅ ) = ln ( ⋅ ) \mathcal{g}(\cdot) = \ln (\cdot) g(⋅)=ln(⋅) 时的特例。
3.3 对数几率回归 (Logistic Regression)也称逻辑回归
这里必须说明,“逻辑回归” 非常不严谨,我们以后不会再使用这个词。
3.3.1 什么是对数几率回归
对数几率回归(Logistic Regression)是一种用于分类问题的统计学习方法。虽然名字中包含"回归"一词,但实际上它是一种广义线性模型,用于估计一个二分类目标变量的概率:只需找一个单调可微函数将分类任务的真实标记 y y y 与线性回归模型的预测值关系起来。
对数几率回归具有以下特点:
- 输出是概率值,可以用于预测类别标签。
- 对于多个特征,可以通过添加交互项和多项式特征进行扩展。
- 对于线性可分问题,可以通过非线性映射(例如核函数)扩展到非线性情况。
3.3.2 单位阶跃函数(unit-step function)与对数几率函数(logistic function)
单位阶跃函数:若预测值 z z z 大于零九判定为正例,小于零则判为反例,预测值为临界值零即可任意判别(根据实际情况而定)。
对数几率函数是一种常用的单位阶跃函数,其表达式为:
y = 1 1 + e − z (3.17) y=\frac{1}{1+e^{-z}} \tag{3.17} y=1+e−z1(3.17)
对数几率函数是一种 “Sigmoid 函数” (神经网络中可能用到的激活函数也包括Sigmoid函数),它将 z 值转化为一个接近 0 或者 1 的 y y y 值,并且其输出值在 z = 0 z=0 z=0 附近变化很陡。
将对数几率函数作为 g − ( ⋅ ) g^{-}(\cdot) g−(⋅) 代入式(3.15),得到
y = 1 1 + e − ( w T x + b ) . (3.18) y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}} . \tag{3.18} y=1+e−(wTx+b)1.(3.18)
经过变形,可以得到式子:
ln y 1 − y = w T x + b (3.19) \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b \tag{3.19} ln1−yy=wTx+b(3.19)
我们通常把式子左边 y 1 − y \frac{y}{1-y} 1−yy 称为 “几率(odds)”,左边的 ln y 1 − y \ln \frac{y}{1-y} ln1−yy 称为 “对数几率(log odds)”。
3.4 线性判别分析(Linear Discriminant Analysis,LDA)
3.4.1 什么是线性判别分析
线性判别模型是一种用于分类问题的机器学习模型。它基于线性方程的组合来确定不同类别之间的边界,并将输入样本划分到相应的类别
中。
3.4.2 线性判别分析的主要思想
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新
样本的类别。
3.4.3 线性判别模型的优缺点
- 线性判别模型的优点包括计算效率高、参数解释性强以及对大规模数据集的适应性好。
- 线性判别模型对数据的分布假设较为严格,对于非线性可分的数据集表现可能较差。在这种情况下,可以通过引入非线性的特征转换或者使用其他更复杂的分类模型来提高分类性能。
3.5 线性模型的多分类学习
3.5.1 线性模型如何解决多分类问题
线性模型解决多分类问题的基本思路是 “拆解法”,即将多分类任务拆为若干个二分类任务求解。具体来说,先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果,这里的关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成。
3.5.2 线性模型解决多分类问题最经典的拆分策略
最检点的拆分策略有三种:
- “一对一”(One vs. One,OvO);
- “一对其余”(One vs. Rest,OvR);
- “多对多”(Many vs. Many,MvM)。
3.6 类别不平衡问题
3.6.1 什么是类别不平衡问题
前面介绍的分类学习方法都有一个共同的基本假设,即不同类别的训练样例数目相当,如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰.例如有998个反例,但正例只有2个那么学习方只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例。
3.6.2 “再缩放(rescaling)” 策略以解决类别不平衡问题
从线性分类器的角度讨论容易理解,在我们用 y = w T x + b y=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b y=wTx+b 对新样本进行分类时,事实上是在用预测出的值与一个阈值进行比较,例如通常在 y > 0.5 y > 0.5 y>0.5 时判别为正例,否则为反例。实际上表达了正例的可能性,几率 y 1 − y \frac{y}{1-y} 1−yy 则反映了正例可能性与反例可能性之比值,阈值设置为 0.5 0.5 0.5 恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为
若 y 1 − y > 1 则 预测为正例. (3.46) \text { 若 } \frac{y}{1-y}>1 \text { 则 预测为正例. } \tag{3.46} 若 1−yy>1 则 预测为正例. (3.46)
然而,当训练集中正、反例的数目不同时,令 m + m^{+} m+ 表示正例数目, m − m^{-} m− 表示反例数目,则观测几率是 m + m − \frac{m^{+}}{m^{-}} m−m+,由于我们通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就应判定为正例,即
若 y 1 − y > m + m − 则 预测为正例. (3.47) \text { 若 } \frac{y}{1-y}>\frac{m^{+}}{m^{-}} \text {则 预测为正例. } \tag{3.47} 若 1−yy>m−m+则 预测为正例. (3.47)
但是,我们的分类器是基于式 (3.46) 进行决策,因此,需对其预测值进行调整,使其在基于式(3.46)决策时,实际是在执行式(3.47)。要做到这一点很容易,只需令
y ′ 1 − y ′ = y 1 − y × m − m + (3.48) \frac{y^{\prime}}{1-y^{\prime}}=\frac{y}{1-y} \times \frac{m^{-}}{m^{+}} \tag{3.48} 1−y′y′=1−yy×m+m−(3.48)
这就是类别不平衡学习的一个基本策略 —— “再缩放”(rescaling)。
3.6.3 “再缩放” 方法存在的缺陷
“再缩放” 基于重要假设 —— “训练集是真实样本总体的无偏采样”,而实际操作中这个假设往往不成立。也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率,现有技术大体上有三类做法:第一类是直接对训练集里的反类样例进行 “欠采样” (undersampling),即去除一些反例使得正、反例数目接近,然后再进行学习;第二类是对训练集里的正类样例进行 “过采样” (oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习;第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3.48)嵌入到其决策过程中,称为“阈值移动”(threshold-moving)。
3.7 线性模型总结
线性模型是一类机器学习模型,基于线性关系来建立输入特征和输出之间的关联。它的主要特点是模型参数与特征之间是线性关系,模型的预测结果可以通过输入特征的线性组合得到。
以下是线性模型的主要特点和应用总结:
-
线性关系:线性模型假设输入特征与输出之间存在线性关系。它通过对特征进行加权求和,并添加偏置项来进行预测。
-
可解释性强:由于线性模型使用线性关系建模,模型参数具有明确的物理或统计含义,因此对于模型的解释性较强。
-
计算效率高:线性模型通常具有较简单的数学形式,计算效率高,特别适用于大规模数据集和高维特征。
-
预测能力有限:线性模型在处理非线性关系的问题上表现有限,无法捕捉复杂的非线性模式。对于非线性问题,需要使用更复杂的模型或者进行特征转换来提高模型性能。
-
常见的线性模型:线性回归是一种经典的线性模型,用于建立连续目标变量与特征之间的线性关系。逻辑回归是一种广泛应用于分类问题的线性模型,通过使用逻辑函数将线性输出映射到概率值。支持向量机(SVM)也可以看作是一种线性模型,通过寻找一个最优的线性超平面来实现分类。
-
正则化技术:为了避免过拟合,线性模型通常使用正则化技术,如L1正则化(Lasso)和L2正则化(Ridge),来限制模型参数的大小。
总的来说,线性模型是一种简单而有效的机器学习模型,适用于处理许多问题。尽管它有一些局限性,但通过适当的特征工程和正则化技术,线性模型在实践中仍然具有广泛的应用。