基本概念
- 评价模型性能的指标
- 均方差
- 平均绝对误差
- 决定系数
- 解释方差得分: e x p l a i n e d _ v a r i a n c e ( y , y ^ ) = 1 − V a r ( y − y ^ ) V a r ( y ) explained\_variance(y,\hat{y})=1-\frac{Var(y-\hat{y})}{Var(y)} explained_variance(y,y^)=1−Var(y)Var(y−y^)
回归
线性回归
假设:数据集
D
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
N
,
y
N
)
}
D = \{(x_1,y_1),...,(x_N,y_N) \}
D={(x1,y1),...,(xN,yN)},
x
i
∈
R
p
,
y
i
∈
R
,
i
=
1
,
2
,
.
.
.
,
N
x_i \in R^p,y_i \in R,i = 1,2,...,N
xi∈Rp,yi∈R,i=1,2,...,N,
X
=
(
x
1
,
x
2
,
.
.
.
,
x
N
)
T
,
Y
=
(
y
1
,
y
2
,
.
.
.
,
y
N
)
T
X = (x_1,x_2,...,x_N)^T,Y=(y_1,y_2,...,y_N)^T
X=(x1,x2,...,xN)T,Y=(y1,y2,...,yN)T
假设X和Y之间存在线性关系,模型的具体形式为
y
^
=
f
(
w
)
=
w
T
x
\hat{y}=f(w) =w^Tx
y^=f(w)=wTx
最小二乘估计(题1、2)
- 一般解释:使得估计值和真实值二范数平方和L(w)最小的w
- 几何解释:估计值 X w ∈ x Xw\in x Xw∈x平面,当向量 Y − X w Y-Xw Y−Xw与x平面垂直时, Y − X w Y-Xw Y−Xw最小,即 X T ( Y − X w ) = 0 X^T(Y-Xw) = 0 XT(Y−Xw)=0
- 概率解释:线性回归的最小二乘估计<==>噪声 ϵ ∽ N ( 0 , σ 2 ) \epsilon\backsim N(0,\sigma^2) ϵ∽N(0,σ2)的极大似然估计
多项式回归(题3)
多项式阶数越大,多项式曲线就会越光滑,在X的边界处有异常的波动。多项式拟合曲线的置信区间明显增大,预测效果的稳定性下降。
广义回归模型(GAM)
GAM实际上是线性模型推广至非线性模型的一个框架,在这个框架中,每一个变量都用一个非线性函数来代替,但是模型本身保持整体可加性。
-
优点: 简单容易操作,能够很自然地推广线性回归模型至非线性模型,使得模型的预测精度有所上升;由于模型本身是可加的,因此GAM还是能像线性回归模型一样把其他因素控制不变的情况下单独对某个变量进行推断,极大地保留了线性回归的易于推断的性质。
-
缺点: GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过GAM还是能像线性回归一样加入交互项 x ( i ) × x ( j ) x^{(i)} \times x^{(j)} x(i)×x(j)的形式进行建模;但是GAM模型本质上还是一个可加模型,如果我们能摆脱可加性模型形式,可能还会提升模型预测精度,详情请看后面的算法。
-
python库:pygam
《女士品茶》
Case Study(题7)
用python和numpy对一个数据集进行线性回归拟合,不能使用sklearn。
选用UCI的Energy efficiency Data Set进行线性回归拟合。
数据集为建筑冷、热负荷和相应的建筑物理参数
其中:
X1 Relative Compactness
X2 Surface Area
X3 Wall Area
X4 Roof Area
X5 Overall Height
X6 Orientation
X7 Glazing Area
X8 Glazing Area Distribution
响应数据为:
y1 Heating Load
y2 Cooling Load
实验分别对y1、y2和8个X变量进行线性回归。代码如下:
import pandas as pd
import numpy as np
df=pd.read_excel('/Users/gu/Downloads/ENB2012_data.xlsx')
X = df.iloc[:,:-2]
X = np.array(X)
y1 = np.array(df.iloc[:,-2])
y2 = np.array(df.iloc[:,-1])
A = np.vstack([X.T, np.ones(len(X))]).T
results1 = np.linalg.lstsq(A, y1)[0]
results2 = np.linalg.lstsq(A, y2)[0]
回归树
- 优点:
- 树模型的解释性强
- 树模型更接近人的决策方式
- 树模型可以用图来表示,非专业人士也可以轻松解读
- 树模型可以直接做定性的特征而不需要像线性回归一样对离散变量进行哑元化。
- 树模型能很好处理缺失值和异常值,对异常值不敏感。
- 缺点:
- 树模型的预测准确性一般无法达到其他回归模型的水平
- 容易过拟合
改进方法:集成学习
支持向量回归
优化基础知识(题5、6)
-
KKT条件(题5)
假设 x ∗ x^* x∗为最优化问题§的局部最优解,且 x ∗ x^* x∗ 在某个适当的条件下 ,有:
∇ f ( x ∗ ) + ∑ i = 1 m λ i ∇ g ( x ∗ ) + ∑ j = 1 l μ j ∇ h j ( x ∗ ) = 0 ( 对 偶 条 件 ) λ i ≥ 0 , i = 1 , 2 , . . . , m ( 对 偶 条 件 ) g i ( x ∗ ) ≤ 0 ( 原 问 题 条 件 ) h j ( x ∗ ) = 0 ( 原 问 题 条 件 ) λ i g ( x ∗ ) = 0 ( 互 补 松 弛 定 理 ) \nabla f(x^*) + \sum\limits_{i=1}^{m}\lambda_i \nabla g(x^*) + \sum\limits_{j=1}^{l}\mu_j \nabla h_j(x^*) = 0(对偶条件)\\ \lambda_i \ge 0,\;i = 1,2,...,m(对偶条件)\\ g_i(x^*) \le 0(原问题条件)\\ h_j(x^*) = 0(原问题条件)\\ \lambda_i g(x^*) = 0(互补松弛定理) ∇f(x∗)+i=1∑mλi∇g(x∗)+j=1∑lμj∇hj(x∗)=0(对偶条件)λi≥0,i=1,2,...,m(对偶条件)gi(x∗)≤0(原问题条件)hj(x∗)=0(原问题条件)λig(x∗)=0(互补松弛定理)
即函数和约束函数梯度向量和为0。 -
引入对偶理论原因(题6)
- 任何一个原问题在变成对偶问题后都会变成一个凸优化的问题
- 对偶问题可以解决原问题难以解决的问题
SVR
- 线性回归的理论:每个样本点都要计算平方损失
- SVR:落在
f
(
x
)
f(x)
f(x)的
ϵ
\epsilon
ϵ邻域空间中的样本点不需要计算损失,其余的落在
ϵ
\epsilon
ϵ邻域空间以外的样本才需要计算损失
m
i
n
w
,
b
,
ξ
i
,
ξ
^
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
(
ξ
i
,
ξ
^
i
)
s
.
t
.
f
(
x
i
)
−
y
i
≤
ϵ
+
ξ
i
y
i
−
f
(
x
i
)
≤
ϵ
+
ξ
^
i
ξ
i
,
ξ
^
i
≤
0
,
i
=
1
,
2
,
.
.
.
,
N
min_{w,b,\xi_i,\hat{\xi}_i} \frac{1}{2}||w||^2 +C \sum\limits_{i=1}^{N}(\xi_i,\hat{\xi}_i)\\ s.t.\;\;\; f(x_i) - y_i \le \epsilon + \xi_i\\ \;\;\;\;\;y_i - f(x_i) \le \epsilon +\hat{\xi}_i\\ \;\;\;\;\; \xi_i,\hat{\xi}_i \le 0,i = 1,2,...,N
minw,b,ξi,ξ^i21∣∣w∣∣2+Ci=1∑N(ξi,ξ^i)s.t.f(xi)−yi≤ϵ+ξiyi−f(xi)≤ϵ+ξ^iξi,ξ^i≤0,i=1,2,...,N
引入拉格朗日函数:
L ( w , b , α , α ^ , ξ , ξ , μ , μ ^ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ( ξ i + ξ ^ i ) − ∑ i = 1 N ξ i μ i − ∑ i = 1 N ξ ^ i μ ^ i + ∑ i = 1 N α i ( f ( x i ) − y i − ϵ − ξ i ) + ∑ i = 1 N α ^ i ( y i − f ( x i ) − ϵ − ξ ^ i ) \begin{array}{l} L(w, b, \alpha, \hat{\alpha}, \xi, \xi, \mu, \hat{\mu}) \\ \quad=\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N}\left(\xi_{i}+\widehat{\xi}_{i}\right)-\sum_{i=1}^{N} \xi_{i} \mu_{i}-\sum_{i=1}^{N} \widehat{\xi}_{i} \widehat{\mu}_{i} \\ \quad+\sum_{i=1}^{N} \alpha_{i}\left(f\left(x_{i}\right)-y_{i}-\epsilon-\xi_{i}\right)+\sum_{i=1}^{N} \widehat{\alpha}_{i}\left(y_{i}-f\left(x_{i}\right)-\epsilon-\widehat{\xi}_{i}\right) \end{array} L(w,b,α,α^,ξ,ξ,μ,μ^)=21∥w∥2+C∑i=1N(ξi+ξ i)−∑i=1Nξiμi−∑i=1Nξ iμ i+∑i=1Nαi(f(xi)−yi−ϵ−ξi)+∑i=1Nα i(yi−f(xi)−ϵ−ξ i)
再令 L ( w , b , α , α ^ , ξ , ξ , μ , μ ^ ) L(w, b, \alpha, \hat{\alpha}, \xi, \xi, \mu, \hat{\mu}) L(w,b,α,α^,ξ,ξ,μ,μ^)对 w , b , ξ , ξ ^ w,b,\xi,\hat{\xi} w,b,ξ,ξ^求偏导等于0,得: w = ∑ i = 1 N ( α ^ i − α i ) x i w=\sum_{i=1}^{N}\left(\widehat{\alpha}_{i}-\alpha_{i}\right) x_{i} w=∑i=1N(α i−αi)xi。
上述过程中需满足KKT条件,即要求:
{ α i ( f ( x i ) − y i − ϵ − ξ i ) = 0 α i ^ ( y i − f ( x i ) − ϵ − ξ ^ i ) = 0 α i α ^ i = 0 , ξ i ξ ^ i = 0 ( C − α i ) ξ i = 0 , ( C − α ^ i ) ξ ^ i = 0 \left\{\begin{array}{c} \alpha_{i}\left(f\left(x_{i}\right)-y_{i}-\epsilon-\xi_{i}\right)=0 \\ \hat{\alpha_{i}}\left(y_{i}-f\left(x_{i}\right)-\epsilon-\hat{\xi}_{i}\right)=0 \\ \alpha_{i} \widehat{\alpha}_{i}=0, \xi_{i} \hat{\xi}_{i}=0 \\ \left(C-\alpha_{i}\right) \xi_{i}=0,\left(C-\widehat{\alpha}_{i}\right) \hat{\xi}_{i}=0 \end{array}\right. ⎩⎪⎪⎪⎨⎪⎪⎪⎧αi(f(xi)−yi−ϵ−ξi)=0αi^(yi−f(xi)−ϵ−ξ^i)=0αiα i=0,ξiξ^i=0(C−αi)ξi=0,(C−α i)ξ^i=0
SVR的解形如: f ( x ) = ∑ i = 1 N ( α ^ i − α i ) x i T x + b f(x)=\sum_{i=1}^{N}\left(\widehat{\alpha}_{i}-\alpha_{i}\right) x_{i}^{T} x+b f(x)=∑i=1N(α i−αi)xiTx+b