一、回归分析的基本概念
1.回归的概念
回归是一种用于金融、投资和其他学科的统计方法,它试图确定一个因变量****(通常用 Y 表示)与一系列其他变量**(称为自变量)之间关系的强度和特征。
2.极大似然估计和最小二乘法
y ( i ) = θ T x ( i ) + ε ( i ) (1) y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)}\tag1 y(i)=θTx(i)+ε(i)(1)
其中 ε ( i ) \varepsilon^{(i)} ε(i)表示的误差项,是独立同分布的,且服从均值为0,方差为 σ 2 \sigma^2 σ2的高斯分布。
原因:中心极限定理
根据
ε
(
i
)
∼
N
(
0
,
σ
2
)
\varepsilon^{(i)}\sim N(0,\sigma^2)
ε(i)∼N(0,σ2),我们给出误差的似然函数如下:
对似然函数取对数,求满足对数似然函数最大的参数
θ
\theta
θ的解。
下面给出
θ
\theta
θ解析式的求解过程:
首先,将
M
M
M个
N
N
N维样本组成矩阵
X
X
X:
- X X X的每一行表示一个样本所有的信息,共有 M M M行,即认为总共有 M M M个样本。
-
X
X
X的每一列表示其中一个样本的所有特征值。
X = ( X 1 , 1 X 1 , 2 . . . X 1 , n X 2 , 1 X 2 , 2 . . . X 2 , n . . . . . . . . . . . . X m , 1 X m , 2 . . . X m , n ) (2) X=\begin{pmatrix} X_{1,1}&X_{1,2} &...& X_{1,n}\\ X_{2,1}&X_{2,2} &...&X_{2,n} \\ ... &...&...&... \\ X_{m,1}&X_{m,2} &...&X_{m,n} \\ \end{pmatrix} \tag2 X=⎝ ⎛X1,1X2,1...Xm,1X1,2X2,2...Xm,2............X1,nX2,n...Xm,n⎠ ⎞(2)
接下来,我们讨论参数的解析式。
θ = ( X T X ) − 1 X T y (3) \theta=(X^TX)^{-1}X^Ty\tag3 θ=(XTX)−1XTy(3)
得出式(3)的前提必须要满足 X T X X^TX XTX是可逆的。
如果 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1不存在,则需要想办法将 X T X X^TX XTX加点约束转换成可逆矩阵,最简单的就是在该矩阵的斜对角线添加一点点非零的量。
θ = ( X T X + λ I ) − 1 X T y (4) \theta=(X^TX+\lambda I)^{-1}X^Ty\tag4 θ=(XTX+λI)−1XTy(4)
X T X X^TX XTX是半正定的,添加了一项 λ I \lambda I λI之后, X T X + λ I X^TX+\lambda I XTX+λI肯定是正定矩阵, λ \lambda λ取任意大于零的实数。
4.正则化稀疏问题
这个很直观,当参数
θ
\theta
θ是二维的时候可以画出
J
(
θ
)
J(\theta)
J(θ)求解过程中的决策图,左边是LASSO约束,可以直接舍去
w
1
w^1
w1,只保留
w
2
w^2
w2对应的特征就好;右边是L2正则约束,
w
1
w^1
w1和
w
2
w^2
w2两个特征都要保留,这也就是为什么说LASSO可以达到稀疏的目的。
3.线性回归的惩罚项
我们前面已经给出了线性回归的目标函数为:
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
[
(
h
θ
⃗
(
x
(
i
)
)
−
y
(
i
)
]
2
(5)
J(\vec{\theta}) =\frac12\sum_{i=1}^{m}[(h_{\vec{\theta}}(x^{(i)})-y^{(i)}]^2\tag5
J(θ)=21i=1∑m[(hθ(x(i))−y(i)]2(5)
将目标函数添加平方和损失之后:
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
[
(
h
θ
⃗
(
x
(
i
)
)
−
y
(
i
)
]
2
+
λ
∑
i
=
1
n
θ
j
2
(6)
J(\vec{\theta}) =\frac12\sum_{i=1}^{m}[(h_{\vec{\theta}}(x^{(i)})-y^{(i)}]^2+\lambda\sum_{i=1}^{n}\theta_j^2\tag6
J(θ)=21i=1∑m[(hθ(x(i))−y(i)]2+λi=1∑nθj2(6)
其实,这个加平方和的约束我们是认为
θ
\theta
θ是符合高斯分布的,也就是说我们在估计参数
θ
\theta
θ之前,给该参数指定了一个高斯先验分布,也称为L2正则化,简称为
L
2
−
n
o
r
m
L2-norm
L2−norm。
当然还有LASSO回归(Least Absolute Shrinkage and selection Operator),对应的是Laplace先验,即将 θ j 2 \theta^2_j θj2改为 ∣ θ j ∣ |\theta_j| ∣θj∣, L 1 − n o r m L1-norm L1−norm。
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
[
(
h
θ
⃗
(
x
(
i
)
)
−
y
(
i
)
]
2
+
λ
∑
i
=
1
n
∣
θ
j
∣
(7)
J(\vec{\theta}) =\frac12\sum_{i=1}^{m}[(h_{\vec{\theta}}(x^{(i)})-y^{(i)}]^2+\lambda\sum_{i=1}^{n}|\theta_j|\tag7
J(θ)=21i=1∑m[(hθ(x(i))−y(i)]2+λi=1∑n∣θj∣(7)
还有个Elastic Net的概念,就是将L1正则和L2正则结合起来考虑,一般很少用。
J
(
θ
⃗
)
=
1
2
∑
i
=
1
m
[
(
h
θ
⃗
(
x
(
i
)
)
−
y
(
i
)
]
2
+
λ
(
ρ
∑
i
=
1
n
∣
θ
j
∣
+
(
1
−
ρ
)
∑
i
=
1
n
θ
j
2
)
(8)
J(\vec{\theta}) =\frac12\sum_{i=1}^{m}[(h_{\vec{\theta}}(x^{(i)})-y^{(i)}]^2+\lambda(\rho\sum_{i=1}^{n}|\theta_j|+(1-\rho)\sum_{i=1}^{n}\theta_j^2)\tag8
J(θ)=21i=1∑m[(hθ(x(i))−y(i)]2+λ(ρi=1∑n∣θj∣+(1−ρ)i=1∑nθj2)(8)
如果不好理解正则项给定的原因,可以联想到我们的目的是为了防止过拟合,也就是说不需要太精确了,我们限制住某些特征方向上的系数,不让它太大,就比如
θ
\theta
θ有两个分量为899.99-899.88或者1.99-1.88,肯定是后者要更好一点,因为波动要小一点,前者带来的波动太大也就是很可能发生过拟合现象,后者的波动较小,鲁棒性要好一些。
二、SGD梯度下降算法
第一步:随机初始化
θ
\theta
θ;
第二步:沿着负梯度方向迭代,更新后的
θ
\theta
θ使得
J
(
θ
)
J(\theta)
J(θ)更小。
θ
=
θ
−
α
∂
J
(
θ
)
∂
θ
(9)
\theta=\theta-\alpha\frac{\partial J(\theta)}{\partial \theta}\tag9
θ=θ−α∂θ∂J(θ)(9)
α
\alpha
α表示的是学习率、步长。
计算梯度的方向
三、线性回归的进一步分析
y
=
θ
0
+
θ
1
x
+
θ
2
x
2
(10)
y =\theta_0+\theta_1x+\theta_2x^2\tag{10}
y=θ0+θ1x+θ2x2(10)
其实这个问题很好解决,因为这个
x
x
x表示的是数据某一维度的特征,我们可以对数据特征多加一列就好了,相当于数据有一列特征为
x
i
x_i
xi,我们人为地添加一项
x
i
2
x_i^2
xi2到原始的数据集中去,看看最后对应的这一项
θ
i
\theta_i
θi的系数大不大,如果很显著就保留,不显著就舍去。