线性回归模型
一元线性回归(Linear Regression)
线性模型:输入属性的线性和(特征的加权和)
f
(
x
i
)
=
w
x
i
+
b
f(x_i)=wx_{i} + b
f(xi)=wxi+b
其中
w
w
w为特征权重,
b
b
b为截距项。
向量形式为:
f
(
x
i
)
=
w
T
x
i
,
w
=
(
w
;
b
)
f(x_i)=\pmb{w}^Tx_{i} , \pmb{w}=(w;b)
f(xi)=wwwTxi,www=(w;b)
为了使模型预测 f ( x i ) f(x_i) f(xi)和实际值 y i y_i yi尽可能的接近,即误差尽可能小(假设误差服从标准高斯分布),则可以得到:
代价函数(Cost Function):
J
(
w
,
b
)
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
J(w,b) =\frac{1}{m}\sum_{i=1}^{m}{(f(x_i) - y_i)}^2
J(w,b)=m1i=1∑m(f(xi)−yi)2
上式为均方误差(MSE,Mean Squared Error),一个m个样本。
求解目标:
m
i
n
w
,
,
b
J
(
w
,
b
)
min_{w,,b}J(w,b)
minw,,bJ(w,b)
求解 w , b w,b w,b,得到最优 w ∗ , b ∗ w^*,b^* w∗,b∗的过程称为最小二乘参数估计(parameter estimate),可以使用正规方程或者梯度下降法
多元线性回归一般形式
f
(
X
)
=
w
^
T
X
f(\pmb{X})=\hat{\pmb{w}}^{T}\pmb{X}
f(XXX)=www^TXXX
一共m个样本,每个样本有d个属性
其中 w ^ = ( w ; b ) \hat{\pmb{w}} = (\pmb{w};b) www^=(www;b),实际值 y = ( y 1 ; y 2 ; . . . ; y m ) \pmb{y}= (y_1;y_2;...;y_m) yyy=(y1;y2;...;ym),
而 X = ( x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d 1 ⋮ ⋮ ⋱ ⋮ ⋮ x m 1 x m 2 ⋯ x m d 1 ) = ( x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ) \pmb{X}= \begin{pmatrix} x_{11}&x_{12}&\cdots&x_{1d}&1\\ x_{21}&x_{22}&\cdots&x_{2d}&1\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ x_{m1}&x_{m2}&\cdots&x_{md}&1\\ \end{pmatrix} = \begin{pmatrix} \pmb{x}^T_{1}&1\\ \pmb{x}^T_{2}&1\\ \vdots&\vdots\\ \pmb{x}^T_{m}&1\\ \end{pmatrix} XXX=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛xxx1Txxx2T⋮xxxmT11⋮1⎠⎟⎟⎟⎞
线性回归的参数估计
正规方程
- 一元情况推导
将 J ( w , b ) J(w, b) J(w,b)对 w 、 b w、b w、b求导得到:
∂ J ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) \frac{\partial{J(w, b)}}{\partial w} =2(w\sum_{i=1}^{m}x_i^2 - \sum_{i=1}^{m}(y_i - b)x_i) ∂w∂J(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂ J ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \frac{\partial{J(w, b)}}{\partial b} = 2(mb - \sum_{i=1}^{m}(y_i - wx_i)) ∂b∂J(w,b)=2(mb−i=1∑m(yi−wxi))
令
∂
J
(
w
,
b
)
∂
w
、
∂
J
(
w
,
b
)
∂
b
\frac{\partial{J(w, b)}}{\partial w}、\frac{\partial{J(w, b)}}{\partial b}
∂w∂J(w,b)、∂b∂J(w,b)等于0,则可以得到最优的
w
∗
=
∑
i
=
1
m
y
i
(
x
i
−
x
ˉ
)
∑
i
=
1
m
x
i
2
−
1
m
(
∑
i
=
1
m
x
i
)
2
w^*= \frac{\sum_{i=1}^{m}y_i(x_i - \bar{x})}{\sum_{i=1}^{m}x_i^2 - \frac{1}{m}(\sum_{i=1}^{m}x_i)^2}
w∗=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b
∗
=
1
m
∑
i
=
1
m
(
y
i
−
w
x
i
)
b^*=\frac{1}{m}\sum_{i=1}^{m}(y_i - wx_i)
b∗=m1i=1∑m(yi−wxi)
其中
x
ˉ
=
1
m
∑
i
=
1
m
x
i
\bar{x} = \frac{1}{m}\sum_{i=1}^{m}x_i
xˉ=m1∑i=1mxi为
x
x
x的均值。
- 多元情况推导
J ( w ^ ) = ( y − X w ^ ) T ( y − X w ^ ) J(\hat{\pmb{w}}) = (\pmb{y} - \pmb{X}\hat{\pmb{w}})^T(\pmb{y} - \pmb{X}\hat{\pmb{w}}) J(www^)=(yyy−XXXwww^)T(yyy−XXXwww^)
∂ J ( w ^ ) ∂ w ^ = 2 X T ( X w ^ − y ) \frac{\partial{J(\hat{\pmb{w}})}}{\partial \hat{\pmb{w}}} = 2\pmb{X}^T(\pmb{X}\hat{\pmb{w}} - \pmb{y}) ∂www^∂J(www^)=2XXXT(XXXwww^−yyy)
求解上式设计到矩阵的逆运算,当 X T X \pmb{X}^T\pmb{X} XXXTXXX为满秩矩阵或者正定矩阵时可以解得:
w ^ ∗ = ( X T X ) − 1 X T y \hat{\pmb{w}}^* = (\pmb{X}^T\pmb{X})^{-1}\pmb{X}^T\pmb{y} www^∗=(XXXTXXX)−1XXXTyyy
然而现实任务中很难满足满秩的要求(比如:特征数量大于样本数量时)此时有多个最优解,最终选择哪一个有学习算法的归纳偏好决定,常见的做法是引入正则化 -> LASSO。
梯度下降
对参数沿下降程度最大的方向(梯度方向)进行迭代,需要设定学习率
α
\alpha
α,即每次下降的步长。
更新的公式为:
w
=
w
−
α
∂
J
(
w
,
b
)
∂
w
w = w - \alpha\frac{\partial J(w, b)}{\partial w}
w=w−α∂w∂J(w,b)
b
=
b
−
α
∂
J
(
w
,
b
)
∂
b
b = b - \alpha\frac{\partial J(w, b)}{\partial b}
b=b−α∂b∂J(w,b)
两者同步更新,直到收敛。
学习率 α \alpha α的选择:
- 每次迭代后J的值应该减小,并且在特定次数后算法趋于收敛
- 若过小,会导致收敛速度很慢
- 若过大,会导致结果震荡,最终不收敛
- 尝试方法:选定一个范围,然后以同样的倍数(0.001、0.003、0.01、0.03…)增大学习率,绘出J的变化图像,选择合适的 α \alpha α中最小的值
两者对比
正规方程 | 梯度下降 |
---|---|
不需要选择 α \alpha α | 选择合适的 α \alpha α |
只需一次计算得到结果 | 需要多次迭代 |
需要计算 ( X T X ) − 1 (\pmb{X}^T\pmb{X})^-1 (XXXTXXX)−1,当m很大时运算代价大(时间复杂度 O ( m 3 ) O(m^3) O(m3),一般m<10000可接受) | 当特征数n很大时也适用 |
只适用于线性模型 | 适用于各种模型 |
可解释性
求解的特征系数即为特征的重要性,易于理解和解释。
优点和缺点
优点:
- 模型透明易于使用和理解
- 使用广泛,有丰富的前人经验
- 才能从数学上,在满足所有假设的情况下可以保证找到最优的权重
- 是许多模型的基础,通过引入映射函数可以获得更强大的模型
缺点:
- 只能表征线性关系,非线性和特征交互需要人工引入 -> 扩展线性模型
- 预测性能不高
稀疏线性模型(LASSO)
LASSO代表“最小绝对收缩和选择算子”,当应用于线性回归模型时,执行特征选择和所选特征权重的正则化。
LASSO优化的目标函数为:
J
(
w
)
=
1
m
∑
i
=
1
m
(
w
T
x
i
−
y
i
)
2
+
λ
∣
∣
w
∣
∣
1
J(\pmb{w}) =\frac{1}{m}\sum_{i=1}^{m}{(\pmb{w}^Tx_{i} - y_i)}^2 + \lambda||\pmb{w}||_1
J(www)=m1i=1∑m(wwwTxi−yi)2+λ∣∣www∣∣1
- 在线性回归的基础上添加了权重的L1范数,对大权重进行惩罚,使得很多权重为0,而其他的权重也会缩小;
- 参数 λ \lambda λ控制正则化强度,通常通过交叉验证进行调整, λ \lambda λ越大,为0的权重越多
广义线性模型(GLM)
线性回归假设输出的结果服从高斯分布,但是实际情况有时很难满足,通过拓展线性模型解决这一问题,可以对所有类型的结果进行建模。
GLM的基本思想:通过一个连接函数
g
(
⋅
)
g(·)
g(⋅)将特征加权和与假定分布的期望连接,连接函数可以根据预测结果自由选择:
g
(
E
Y
(
y
∣
x
)
)
=
w
x
i
+
b
g(E_{Y}(y|\pmb{x}))=wx_{i} + b
g(EY(y∣xxx))=wxi+b
其中g为连接函数,可以自由选择;右式为加权和;E为指数族的概率分布;
逻辑回归是一种假定伯努利分布和Logit函数作为连接函数的GLM
广义加性模型(GAM)
线性回归只能拟合线性关系,针对非线性关系可使用GAM进行建模:
g
(
E
Y
(
y
∣
x
)
)
=
f
(
x
i
)
+
b
g(E_{Y}(y|\pmb{x}))=f(x_{i}) + b
g(EY(y∣xxx))=f(xi)+b
GAM认为关系必须是一个简单的加权和,但可以使用特征的任意函数进行建模。
如何学习一个非线性函数呢?-> 使用样条函数(样条函数可以通过组合来近似任意函数)