1 回归
回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(特征)之间的关系。通常使用直线或光滑的曲线来拟合数据点,目标是使拟合的线到数据点的距离差异最小。而回归又可分为线性回归和非线性回归:
- 线性回归:假设目标值与特征之间线性相关,即满足一个多元一次方程;
- 非线性回归:目标值与特征之间的关系是非线性的,不能用一个多元一次方程表征,可以用高阶方程或者其他非线性模型进行表示。
1.1 线性回归
对于数据集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
x
i
∈
R
p
,
y
i
∈
R
,
i
=
1
,
2
,
.
.
.
,
N
,
X
=
(
x
1
,
x
2
,
.
.
.
,
x
m
)
T
,
Y
=
(
y
1
,
y
2
,
.
.
.
,
y
m
)
T
D=\{( x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}, x_i \in R^p,y_i \in R,i = 1,2,...,N, X = (x_1,x_2,...,x_m)^T,Y=(y_1,y_2,...,y_m)^T
D={(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rp,yi∈R,i=1,2,...,N,X=(x1,x2,...,xm)T,Y=(y1,y2,...,ym)T,假设X和Y之间存在线性关系,模型的具体形式为
f
(
x
i
)
=
w
T
x
i
+
b
f(x_i)=w^Tx_i+b
f(xi)=wTxi+b, 使得
f
(
x
i
)
≃
y
i
f(x_i) \simeq y_i
f(xi)≃yi。
那么如何确定
w
w
w和
b
b
b?关键就在于衡量
f
(
x
)
f(x)
f(x)和
y
y
y之间的差别,而在回归中常用均方误差MSE进行性能度量,因此我们试图让MSE最小化:
(
w
∗
,
b
∗
)
=
a
r
g
min
(
w
,
b
)
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
=
a
r
g
min
(
w
,
b
)
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
(w^*,b^*) = \underset{(w,b)}{arg\min}\sum_{i=1}^m (f(x_i)-y_i)^2 = \underset{(w,b)}{arg\min}\sum_{i=1}^m(y_i-wx_i-b)^2
(w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2
1.1.1 最小二乘法
均方误差对应了常用的欧几里得距离,因此具有非常好的集合意义。基于均方误差最小化求解线性模型的方法称为“最小二乘法”。最小二乘法就是试图找到一条线,使得训练集所有样本到这条线的欧式距离和
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
E(w,b)=∑i=1m(yi−wxi−b)2最小。
因此我们需要找到使得距离之和最小时的
w
w
w和
b
b
b,该过程称为最小二乘的“参数估计”。为了解决这个问题,我们应用高等数学,分别对
w
w
w和
b
b
b求导并令其取值为0,即可求最小值。
∂
E
(
w
,
b
)
∂
w
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
=
0
\frac{\partial E_{(w,b)}}{\partial w}=2\left(w \sum_{i=1}^m x_i^2- \sum_{i=1}^m (y_i-b)x_i\right)=0
∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)=0
∂
E
(
w
,
b
)
∂
b
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
w
x
i
)
)
=
0
\frac{\partial E_{(w,b)}}{\partial b}=2\left(mb- \sum_{i=1}^m (y_i-wx_i)\right)=0
∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))=0
则
w
w
w和
b
b
b最优解的闭式解为:
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}^mx_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)
更一般的,我们将
w
w
w和
b
b
b表示为向量形式
w
^
=
(
w
;
b
)
\hat{w}=(w;b)
w^=(w;b),数据集有
m
m
m个样本
d
d
d个属性表示为一个
m
×
(
d
+
1
)
m\times(d+1)
m×(d+1)的矩阵
X
X
X,则模型表达式可表示为
f
(
w
,
b
)
=
w
^
T
X
f(w,b)=\hat{w}^TX
f(w,b)=w^TX,最小二乘可以表示为
L
(
w
^
)
=
∑
i
=
1
m
∣
∣
w
^
T
x
i
−
y
i
∣
∣
2
2
=
∑
i
=
1
m
(
w
^
T
x
i
−
y
i
)
2
=
(
w
^
T
X
T
−
Y
T
)
(
w
^
T
X
T
−
Y
T
)
T
=
w
^
T
X
T
X
w
^
−
2
w
^
T
X
T
Y
+
Y
Y
T
L(\hat{w}) = \sum\limits_{i=1}^{m}||\hat{w}^Tx_i-y_i||_2^2=\sum\limits_{i=1}^{m}(\hat{w}^Tx_i-y_i)^2 \\= (\hat{w}^TX^T-Y^T)(\hat{w}^TX^T-Y^T)^T \\= \hat{w}^TX^TX\hat{w} - 2\hat{w}^TX^TY+YY^T
L(w^)=i=1∑m∣∣w^Txi−yi∣∣22=i=1∑m(w^Txi−yi)2=(w^TXT−YT)(w^TXT−YT)T=w^TXTXw^−2w^TXTY+YYT
求导后:
∂
L
(
w
^
)
∂
w
^
=
2
X
T
X
w
^
−
2
X
T
Y
=
0
\frac{\partial L(\hat{w})}{\partial \hat{w}} = 2X^TX\hat{w}-2X^TY = 0
∂w^∂L(w^)=2XTXw^−2XTY=0
因此:
w
^
=
(
X
T
X
)
−
1
X
T
Y
\hat{w} = (X^TX)^{-1}X^TY
w^=(XTX)−1XTY
1.1.2 几何解释
对于一个平面
X
X
X,上边有d个向量(d个属性)
x
1
,
x
2
,
.
.
,
x
d
∈
X
x_1,x_2,..,x_d \in X
x1,x2,..,xd∈X,将这m个向量进行线性组合得到
X
X
X上的一个新的向量
X
w
^
X\hat{w}
Xw^。由于平面外向量
Y
Y
Y在平面上的投影与该新向量长度相等,因此二者之差得到的向量
(
Y
−
X
w
^
)
(Y-X\hat{w})
(Y−Xw^)垂直于平面
X
X
X,即
X
T
(
Y
−
X
w
^
)
=
0
X^T(Y-X\hat{w}) = 0
XT(Y−Xw^)=0,则
w
^
=
(
X
T
X
)
−
1
X
T
Y
\hat{w} = (X^TX)^{-1}X^TY
w^=(XTX)−1XTY
1.1.3 概率视角
假设噪声
ϵ
∽
N
(
0
,
σ
2
)
,
y
=
f
(
w
)
+
ϵ
=
w
T
x
+
ϵ
\epsilon \backsim N(0,\sigma^2),y=f(w)+\epsilon=w^Tx+\epsilon
ϵ∽N(0,σ2),y=f(w)+ϵ=wTx+ϵ,因此:
y
∣
x
i
,
w
N
(
w
T
x
,
σ
2
)
y|x_i,w ~ N(w^Tx,\sigma^2)
y∣xi,w N(wTx,σ2)
我们使用极大似然估计MLE对参数w进行估计:
L
(
w
)
=
l
o
g
P
(
Y
∣
X
;
w
)
=
l
o
g
∏
i
=
1
N
P
(
y
i
∣
x
i
;
w
)
=
∑
i
=
1
N
l
o
g
P
(
y
i
∣
x
i
;
w
)
=
∑
i
=
1
N
l
o
g
(
1
2
π
σ
e
x
p
(
−
(
y
i
−
w
T
x
i
)
2
2
σ
2
)
)
=
∑
i
=
1
N
[
l
o
g
(
1
2
π
σ
)
−
1
2
σ
2
(
y
i
−
w
T
x
i
)
2
]
L(w) = log\;P(Y|X;w) = log\;\prod_{i=1}^N P(y_i|x_i;w) = \sum\limits_{i=1}^{N} log\; P(y_i|x_i;w)\\ = \sum\limits_{i=1}^{N}log(\frac{1}{\sqrt{2\pi \sigma}}exp(-\frac{(y_i-w^Tx_i)^2}{2\sigma^2})) = \sum\limits_{i=1}^{N}[log(\frac{1}{\sqrt{2\pi}\sigma})-\frac{1}{2\sigma^2}(y_i-w^Tx_i)^2]
L(w)=logP(Y∣X;w)=logi=1∏NP(yi∣xi;w)=i=1∑NlogP(yi∣xi;w)=i=1∑Nlog(2πσ1exp(−2σ2(yi−wTxi)2))=i=1∑N[log(2πσ1)−2σ21(yi−wTxi)2]
a
r
g
m
a
x
w
L
(
w
)
=
a
r
g
m
i
n
w
[
l
(
w
)
=
∑
i
=
1
N
(
y
i
−
w
T
x
i
)
2
]
argmax_w L(w) = argmin_w[l(w) = \sum\limits_{i = 1}^{N}(y_i-w^Tx_i)^2]
argmaxwL(w)=argminw[l(w)=i=1∑N(yi−wTxi)2]
因此:线性回归的最小二乘估计<==>噪声
ϵ
∽
N
(
0
,
σ
2
)
\epsilon\backsim N(0,\sigma^2)
ϵ∽N(0,σ2)的极大似然估计。
1.2 非线性回归
当目标值与特征之间的关系是非线性关系时,我们用线性回归就不能很好的表征数据之间的趋势关系,此时就要用非线性模型进行回归拟合。很自然而然的我们想到去推广线性回归模型,使得推广后的模型更能表达非线性的关系。
1.2.1 多项式拟合
线性回归是利用一条直线进行回归拟合,那么对于非线性关系我们可否用一条光滑曲线进行拟合呢?答案是肯定的。光滑曲线可以用高阶多项式进行表示,因此我们可以用多项式进行回归分析:
y
i
=
w
0
+
w
1
x
i
+
w
2
x
i
2
+
.
.
.
+
w
d
x
i
d
+
ϵ
y_i = w_0 + w_1x_i + w_2x_i^2 + ...+w_dx_i^d + \epsilon
yi=w0+w1xi+w2xi2+...+wdxid+ϵ
但是高阶多项式随着阶数的增高越光滑,越能更好的拟合,但是在边界去异常波动也会越明显,因此阶数一般不超过3阶或者4阶。
图中的边界处的4阶多项式拟合曲线的置信区间(虚线表示置信区间)明显增大,预测效果的稳定性下降。
1.2.2 广义可加模型
广义可加模型GAM实际上是一个将线性模型推广至非线性模型的框架,它将每一个变量都用一个非线性函数来代替,但是模型依然保持可加性:
y
i
=
w
0
+
∑
j
=
1
p
f
j
(
x
i
j
)
+
ϵ
i
y_i = w_0 + \sum\limits_{j=1}^{p}f_{j}(x_{ij}) + \epsilon_i
yi=w0+j=1∑pfj(xij)+ϵi
GAM模型的优点与不足:
- 优点:简单容易操作,很自然地将线性模型推广至非线性模型;由于模型本身是可加的,因此GAM还是能像线性回归模型一样把其他因素控制不变的情况下单独对某个变量进行推断,极大地保留了线性回归的易于推断的性质。
- 缺点:GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过GAM还是能像线性回归一样加入交互项 𝑥(𝑖)×𝑥(𝑗)的形式进行建模。
1.3 回归树
说到决策树,大家首先想到的是做决策,但是它也可以做回归。在分类问题中,决策树 的每一片叶子都代表的是一个类别;在回归问题中,决策树的每一片叶子表示的是一个预测值,取值是连续的,般是该片叶子所含训练集元素输出的均值( c m = a v e ( y i ∣ x i ∈ l e a f m ) cm=ave(y_i|x_i\in leaf_m) cm=ave(yi∣xi∈leafm)。
假设一棵构建好的回归树有
M
M
M片叶子,这意味着 回归树将输入空间
X
X
X划分成了
M
M
M个单元
R
1
,
R
2
,
.
.
.
,
R
M
R_1,R_2,...,R_M
R1,R2,...,RM,同时意味着回归树至多会有
M
M
M个不同的预测值。回归树最小化 mse 公式如下:
m
i
n
1
n
∑
m
=
1
M
∑
x
i
∈
R
m
(
c
m
−
y
i
)
2
min\frac{1}{n}\sum_{m=1}^M\sum x_i\in R_m(c_m−y_i)^2
minn1m=1∑M∑xi∈Rm(cm−yi)2
其中,
c
m
c_m
cm 表示第
m
m
m片叶子的预测值。
想要最小化回归树总体的mse,只需要最小化每一片叶子的 mse 即可。而最小化一片叶子的 mse,只需要将预测值设定为叶子中含有的训练集元素的均值。所以,在每一次的划分中,选择切分变量和切分点时(也就是选择哪个特征和将该特征空间 一分为二的特征值),使得模型在训练集上的 mse 最小。
该算法可表示如下:
-
遍历所有的切分变量和切分点,然后选出叶子节点mse之和最小的那种情况作为划分。选择第 j 个 特征x(j) 和它取的值 s,作为切分变量和切分点。则
R 1 { j , s } = { x ∣ x j ≤ s } R 2 { j , s } = { x ∣ x j > s } R_1\{j,s\}=\{x|x_j\leq s\} \\ R_2\{j,s\}=\{x|x_j > s\} R1{j,s}={x∣xj≤s}R2{j,s}={x∣xj>s} -
选择第j个切分变量和切分点s遵循如下公式:
m i n j , s [ m i n c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] min_{j,s}[min_{c_1}\sum\limits_{x_i\in R_1(j,s)}(y_i-c_1)^2 + min_{c_2}\sum\limits_{x_i\in R_2(j,s)}(y_i-c_2)^2 ] minj,s[minc1xi∈R1(j,s)∑(yi−c1)2+minc2xi∈R2(j,s)∑(yi−c2)2] -
继续调用步骤1,2直到满足停止条件,就是每个区域的样本数小于等于叶子节点最少样本数;
-
将特征空间划分为j个不同的区域,生成回归树: f ( x ) = ∑ m = 1 J c ^ m I ( x ∈ R m ) f(x) = \sum\limits_{m=1}^{J}\hat{c}_mI(x \in R_m) f(x)=m=1∑Jc^mI(x∈Rm)。
1.4 逻辑回归
逻辑回归(Logistic regression,简称LR),虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型。主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
l
o
g
i
(
z
)
=
1
1
+
e
−
z
.
logi(z) = \frac{ 1 }{1+e^{-z}}\,.
logi(z)=1+e−z1.
其图像为:
由图像可知,当z=0时,logi(z)=0.5。
而回归的基本方程为:
$ 𝑧 = 𝑤_{0}+\sum_{i}^{N} w_{i}\dot x_{i} $
那么当z>0时,p>0.5,分类为1。当z<0时,p<0.5,分类为0。
对于模型的训练而言:实质上来说就是利用数据求解出对应的模型的特定的 𝑤 。从而得到一个针对于当前数据的特征逻辑回归模型。而对于多分类而言,将多个二分类的逻辑回归组合,即可实现多分类。
对于逻辑回归而言,最为突出的两点就是其模型简单和模型的可解释性强。逻辑回归模型的优劣势:
优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
缺点:容易欠拟合,分类精度可能不高