Chapt-3.数据拟合

Posted by whaler404 on May 17, 2024

Chapt-3.数据拟合

单变量数据拟合及最小二乘法

给定数据表,表示自变量和因变量的关系,使用单变量数据拟合法,寻找近似函数代替$f(x)$

$F(x)$拟合函数,$f(x)$被拟合函数

  • 偏差定义:拟合函数和被拟合函数在$x_i$的偏差,记为$\delta_i=f(x_i)-F(x_i)$

  • 最小二乘法定义:偏差平方和的最小值 \(\min\sum\limits_{i=1}^n\delta_i^2=\sum\limits_{i=1}^{n}[f(x_i)-F(x_i)]^2\)

  • 最小二乘直线定理:给定$y=f(x)$数据表$(x_i,y_i)$,如果散点答题满足线性函数,拟合函数为

    \[F(x)=a+bx \\ 待定参数a和b是正规方程组的解 \\ \left\{ \begin{aligned} &na+(\sum\limits_{i=1}^nx_i)b=\sum\limits_{i=1}^ny_i \\ &(\sum\limits_{i=1}^nx_i)a+(\sum\limits_{i=1}^nx_i^2)b =\sum\limits_{i=1}^nx_iy_i \end{aligned} \right.\]

多变量数据拟合及最小二乘法

实际中自变量有多个,自变量记为 ${x_k}$,因变量记为 $y$

\[F(x_1,x_2,\cdots,x_k)=a_0+a_1x_1+\cdots+a_kx_k\]

最小二乘法确定待定参数,偏差平方和:

\[\varphi(a_0,a_1,\cdots ,a_k)=\sum\limits_{m=1}^{n} (y_k-a_0-a_1x_{m1}-a_2x_{m2}-\cdots -a_kx_{mk})^2\]

多元函数求极小值方法:对偏差平方和求参数的偏导数并令其等于零

\[\min\varphi(a_0,a_1,\cdots,a_k) \\ \frac{\partial\varphi}{\partial a_i}=0 \\ 求解 \\ \left\{ \begin{array}{**lr**} na_0 &+a_1\sum\limits_{m=1}^{n}x_{m1} &+a_2\sum\limits_{m=1}^{n}x_{m2} &+\cdots &+a_k\sum\limits_{m=1}^{n}x_{mk}= & \sum\limits_{m=1}^{n}y_{m} \\ a_0\sum\limits_{m=1}^{n}x_{m1} &+a_1\sum\limits_{m=1}^{n}x_{m1}x_{m1} &+a_2\sum\limits_{m=1}^{n}x_{m2}x_{m1} &+\cdots &+a_k\sum\limits_{m=1}^{n}x_{mk}x_{m1}= & \sum\limits_{m=1}^{n}y_{m}x_{m1} \\ a_0\sum\limits_{m=1}^{n}x_{m2} &+a_1\sum\limits_{m=1}^{n}x_{m1}x_{m2} &+a_2\sum\limits_{m=1}^{n}x_{m2}x_{m2} &+\cdots &+a_k\sum\limits_{m=1}^{n}x_{mk}x_{m2}= & \sum\limits_{m=1}^{n}y_{m}x_{m2}x_{m2} \\ & \vdots\\ a_0\sum\limits_{m=1}^{n}x_{mk} &+a_1\sum\limits_{m=1}^{n}x_{m1}x_{mk} &+a_2\sum\limits_{m=1}^{n}x_{m2}x_{mk} &+\cdots &+a_k\sum\limits_{m=1}^{n}x_{mk}x_{mk}= & \sum\limits_{m=1}^{n}y_{m}x_{mk} \\ \end{array} \right.\]

非线性数据线性化

原始数据不呈现线性关系,先将原始数据变换,使得变换后的数据呈现线性关系

\[y=a+b\ln x \quad\longrightarrow\quad X=\ln x,Y=y \\ y=ae^{bx} \quad\longrightarrow\quad X=x,Y=\ln y \\\]

线性模型最小二乘解的几何解释

线性模型最小二乘解的矩阵解释

正交多项式拟合

  • 多项式拟合定义:将多项式拟合函数变成多变量拟合函数

    \[m次多项式函数 \\ y^*=\Psi_m(x)=a_0p_0(x)+a_1p_1(x)+\cdots+a_mp_m(x) =\sum\limits_{k=0}^ma_kp_k(0) \\ \delta_i=y_i-y_i^*=y_i-\sum\limits_{k=0}^ma_kp_k(x_i)\]

    需要求解一个正规方程组,当多项式次数较高时,正规方程组可能会病态

    • 病态方程组定义: $Ax=b$ 中的系数矩阵和常数项发生微小变化,会引起方程组的解很大变化
  • 通常在 $\delta_i$ 前面乘上一个表示数据精度的权数 $w_i$

    \[\varphi(a_0,a_1,\cdots,a_m)=\sum\limits_{i=1}^{n}w_i\delta_i^2\]

    求解加权偏差平方和最小,转化为求解目标函数的极小值问题

    \[\frac{\partial\varphi}{\partial a_j}= -2\sum\limits_{i=1}^nw_i[y_i-\sum\limits_{k=0}^ma_kp_k(x_i)]p_j(x_i)=0 \\ 移项得到\sum\limits_{i=1}^n p_j(x_i) w_i y_i= \sum\limits_{i=1}^n p_j(x_i) w_i[\sum\limits_{k=0}^ma_k p_k(x_i)] \\ 交换求和顺序得到\\ \sum\limits_{k=0}^ma_k[\sum\limits_{i=1}^n p_j(x_i) w_i p_k(x_i)] = \sum\limits_{i=1}^n p_j(x_i) w_i y_i \\ 令c_{jk}=\sum\limits_{i=1}^n p_j(x_i) w_i p_k(x_i),\quad b_j=\sum\limits_{i=1}^n p_j(x_i) w_i y_i \\\]

    得到正规方程组

    \[\sum\limits_{k=0}^m c_{jk}a_k=b_j\]

避免过拟合

过拟合通常表现为拟合模型的高方差和低偏差,欠拟合表现为拟合模型的低方差和高偏差

防止过拟合通常采用正则化项

\[F(x,\theta)=w_0+\theta_1x^1+\theta_2x^2+\cdots++\theta_Mx^M =\sum\limits_{i=0}^M\theta_ix^i\]

$L_2$ 正则化:

$\varphi(x,\theta)=\frac{1}{2}{F(x,\theta)-y_i}^2+\frac{\lambda}{2}\Vert \theta\Vert _2^2$

$L_1$ 正则化:

$\varphi(x,\theta)=\frac{1}{2}{F(x,\theta)-y_i}^2+\frac{\lambda}{2}\Vert \theta\Vert _1^2$

带$L_2$正则项的最小二乘解:$\theta=(A^TA+I)^{-1}A^Tb$