ISLR读书笔记十三:非线性回归

前言

之前介绍的主要是线性回归的方法,本篇主要讲述一些非线性回归的方法,主要基于的方法是基函数(basic functions),即拟合模型:
y i = β 0 + β 1 b 1 ( x i ) + β 2 b 2 ( x i ) + β 3 b 3 ( x i ) + … + β K b K ( x i ) + ϵ i y_{i}=\beta_{0}+\beta_{1} b_{1}\left(x_{i}\right)+\beta_{2} b_{2}\left(x_{i}\right)+\beta_{3} b_{3}\left(x_{i}\right)+\ldots+\beta_{K} b_{K}\left(x_{i}\right)+\epsilon_{i} yi=β0+β1b1(xi)+β2b2(xi)+β3b3(xi)++βKbK(xi)+ϵi
其中, b 1 ( ⋅ ) , b 2 ( ⋅ ) , ⋯   , b K ( ⋅ ) b_1(\cdot),b_2(\cdot),\cdots,b_K(\cdot) b1(),b2(),,bK() 称作基函数。

多项式回归(polynomial regression)

b j ( x i ) = x i j b_j(x_i)=x_i^j bj(xi)=xij,那么
y i = β 0 + β 1 x i + β 2 x i 2 + β 3 x i 3 + … + β K x i K + ϵ i y_{i}=\beta_{0}+\beta_{1} x_{i}+\beta_{2} x_{i}^{2}+\beta_{3} x_{i}^{3}+\ldots+\beta_{K} x_{i}^{K}+\epsilon_{i} yi=β0+β1xi+β2xi2+β3xi3++βKxiK+ϵi
称作多项式回归。

阶梯函数(step function)

b j ( x i ) = I ( c j ≤ x i ≤ c j + 1 ) b_j(x_i)=I(c_j\leq x_i\leq c_{j+1}) bj(xi)=I(cjxicj+1),那么
y i = β 0 + β 1 C 1 ( x i ) + β 2 C 2 ( x i ) + β 3 C 3 ( x i ) + … + β K C K ( x i ) + ϵ i y_{i}=\beta_{0}+\beta_{1} C_{1}\left(x_{i}\right)+\beta_{2} C_{2}\left(x_{i}\right)+\beta_{3} C_{3}\left(x_{i}\right)+\ldots+\beta_{K} C_{K}\left(x_{i}\right)+\epsilon_{i} yi=β0+β1C1(xi)+β2C2(xi)+β3C3(xi)++βKCK(xi)+ϵi
其中
C 0 ( X ) = I ( X < c 1 ) C 1 ( X ) = I ( c 1 ≤ X < c 2 ) C 2 ( X ) = I ( c 2 ≤ X < c 3 ) ⋮ C K − 1 ( X ) = I ( c K − 1 ≤ X < c K ) C K ( X ) = I ( c K ≤ X ) \begin{aligned} C_{0}(X) &=I\left(X<c_{1}\right) \\ C_{1}(X) &=I\left(c_{1} \leq X<c_{2}\right) \\ C_{2}(X) &=I\left(c_{2} \leq X<c_{3}\right) \\ & \vdots \\ C_{K-1}(X) &=I\left(c_{K-1} \leq X<c_{K}\right) \\ C_{K}(X) &=I\left(c_{K} \leq X\right) \end{aligned} C0(X)C1(X)C2(X)CK1(X)CK(X)=I(X<c1)=I(c1X<c2)=I(c2X<c3)=I(cK1X<cK)=I(cKX)
I ( ⋅ ) I(\cdot) I() 是示性函数。 I ( c K ≤ X ) = 1 I\left(c_{K} \leq X\right)=1 I(cKX)=1 当且仅当 c K ≤ X c_{K} \leq X cKX ,否则 I ( c K ≤ X ) = 0 I\left(c_{K} \leq X\right)=0 I(cKX)=0

回归样条函数 (regression splines)

当基函数是 x , x 2 , x 3 , h ( x , ξ 1 ) , h ( x , ξ 2 ) , ⋯   , h ( x , ξ K ) x,x^2,x^3,h(x,\xi_1),h(x,\xi_2),\cdots,h(x,\xi_K) x,x2,x3,h(x,ξ1),h(x,ξ2),,h(x,ξK) 时,其中
h ( x , ξ ) = ( x − ξ ) + 3 = { ( x − ξ ) 3  if  x > ξ 0  otherwise  h(x, \xi)=(x-\xi)_{+}^{3}=\left\{\begin{array}{cl} (x-\xi)^{3} & \text { if } x>\xi \\ 0 & \text { otherwise } \end{array}\right. h(x,ξ)=(xξ)+3={ (xξ)30 if x>ξ otherwise 
ξ \xi ξ 称作节点(knots),这里一共有 K K K 个节点。拟合出来的函数是一个分段函数,一共有 K + 1 K+1 K+1 段,每一段上是一个三次函数,整个函数连续,且一阶导数和二阶导数均连续。如果在两端边界的二阶导数均为0,那么这是自然样条(natural spline)。
节点的数目:可以用交叉验证的方式,确定较优的节点数。
节点的位置:可以将节点选在等分的位置。

光滑样条函数(smoothing splines)

光滑样条函数 g g g,是使得下式最小的函数:
∑ i = 1 n ( y i − g ( x i ) ) 2 + λ ∫ g ′ ′ ( t ) 2 d t \sum_{i=1}^{n}\left(y_{i}-g\left(x_{i}\right)\right)^{2}+\lambda \int g^{\prime \prime}(t)^{2} d t i=1n(yig(xi))2+λg(t)2dt
前一项是RSS,后一项是惩罚项,这里可以视作函数的光滑性, λ \lambda λ 是参数, λ \lambda λ 越大,得到的 g g g 越光滑。
如此得到的 g g g 是一个分段三次函数,在每个节点处一阶和二阶导数均连续。

局部回归(local regression)

局部回归的思想是用目标点附近的点来进行拟合。记目标点为 x 0 x_0 x0,算法如下:

  1. 找出 x 0 x_0 x0 附近最近的 k k k 个训练点。
  2. 给这些点分配权重 K i 0 = K ( x i , x 0 ) K_{i0}=K(x_i,x_0) Ki0=K(xi,x0),最远的点权重为 0,最近的点权重最大。所有其他以外的点,权重为 0
  3. 用一个加权最小二乘回归进行拟合: ∑ i = 1 n K i 0 ( y i − β 0 − β 1 x i ) 2 \sum_{i=1}^nK_{i0}(y_i-\beta_0-\beta_1x_i)^2 i=1nKi0(yiβ0β1xi)2
  4. x 0 x_0 x0 处的拟合值为 f ^ ( x 0 ) = β ^ 0 + β ^ 1 x 0 \hat{f}(x_0)=\hat\beta_0+\hat\beta_1x_0 f^(x0)=β^0+β^1x0

有几点需要考虑

  1. 如何定义权重函数 K K K
  2. 上述算法第三步,是用线性回归,还是二次回归,或者其他
  3. 如何确定第一步中的 k k k

广义加性模型(generalized additive model)

一般的线性回归模型:
y i = β 0 + β 1 x i 1 + β 2 x i 2 + ⋯ + β p x i p + ϵ i y_{i}=\beta_{0}+\beta_{1} x_{i 1}+\beta_{2} x_{i 2}+\cdots+\beta_{p} x_{i p}+\epsilon_{i} yi=β0+β1xi1+β2xi2++βpxip+ϵi
广义加性模型将 β j x i j \beta_{j} x_{i j} βjxij 替换成了一般的 f j ( x i j ) f_j(x_{ij}) fj(xij):
y i = β 0 + ∑ j = 1 p f j ( x i j ) + ϵ i = β 0 + f 1 ( x i 1 ) + f 2 ( x i 2 ) + ⋯ + f p ( x i p ) + ϵ i \begin{aligned} y_{i} &=\beta_{0}+\sum_{j=1}^{p} f_{j}\left(x_{i j}\right)+\epsilon_{i} \\ &=\beta_{0}+f_{1}\left(x_{i 1}\right)+f_{2}\left(x_{i 2}\right)+\cdots+f_{p}\left(x_{i p}\right)+\epsilon_{i} \end{aligned} yi=β0+j=1pfj(xij)+ϵi=β0+f1(xi1)+f2(xi2)++fp(xip)+ϵi
优点:

  1. 比标准的线性回归模型更好地进行非线性建模,不需要对自变量进行变换。
  2. 预测更准确
  3. 由于加性,可以检测 Y Y Y 与每一个自变量 X j X_j Xj 的关系,所以可以用来进行推断。

缺点:受制于加性的局限,忽视了自变量之间的相互作用。

猜你喜欢

转载自blog.csdn.net/weixin_43084570/article/details/109067370
今日推荐