日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性拟合2-正交回归

發布時間:2024/3/26 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性拟合2-正交回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 正交回歸
  • 目標函數
  • 求解推導
  • 結果整理
  • 幾何意義

上一篇文章使用最小二乘法來擬合直線,有一個重要的缺點就是僅考慮了因變量 yyy存在誤差的情況,但是很多情況下,原始點的橫縱坐標都會有誤差存在。

本文使用正交回歸的方法,解決了最小二乘的兩個缺點:

  • 同時考慮了橫縱坐標的誤差;
  • 使用點法式直線方程,能夠表示二維平面上所有的點。
  • 正交回歸

    正交方法能夠同時考慮自變量xxx和因變量yyy的誤差。正交回歸將橫縱坐標殘差的平方和作為目標函數,來求得最優解。直觀地理解,正交回歸就是找到一條直線,使得點到直線的距離之和最小。
    所以如果擬合點的橫縱坐標都包含誤差的情況下,使用正交回歸能夠得到更準確的結果。

    目標函數

    定義橫坐標xxx的真值為x?x^{\star}x?,估計值為x^\hat{x}x^,則橫坐標的誤差和殘差定義如下:
    ηi=xi?xi?\eta_i=x_i-x_i^{\star} ηi?=xi??xi??
    η^i=xi?x^i\hat{\eta}_i=x_i-\hat{x}_i η^?i?=xi??x^i?

    要綜合考慮橫縱坐標的誤差,得出的目標函數應該有如下形式:
    J2=∑[(?^i)2+(η^i)2]=∑[(yi?y^i)2+(xi?x^i)2]\begin{aligned} \bm{J}_2&=\sum[(\hat{\epsilon}_i)^2+(\hat{\eta}_i)^2] \\ &=\sum[(y_i-\hat{y}_i)^2+(x_i-\hat{x}_i)^2] \end{aligned} J2??=[(?^i?)2+(η^?i?)2]=[(yi??y^?i?)2+(xi??x^i?)2]?

    因為要求目標函數的最小值,所以點(x^i,y^i)(\hat{x}_i,\hat{y}_i)(x^i?,y^?i?)應該是直線上到點(xi,yi)(x_i,y_i)(xi?,yi?)距離最短的點,也就是第iii個點到直線的正交投影點。所以目標函數可以寫成:
    J2=∑di2\bm{J}_2=\sum d_i^2 J2?=di2?

    其中did_idi?為第iii個點(xi,yi)(x_i,y_i)(xi?,yi?)到擬合直線的距離。

    求解推導

    上一篇文章中,最小二乘法使用斜截式直線方程的話,會有無法表示的直線,所以本文使用點法式直線方程。

    用點法式直線方程的形式來表示擬合的直線a(x?x0)+b(y?y0)=0a(x-x_0)+b(y-y_0)=0a(x?x0?)+b(y?y0?)=0,其中(x0,y0)(x_0,y_0)(x0?,y0?)是直線經過的一個點的坐標,(a,b)(a,b)(a,b)為直線的法向量。因為向量僅表示一個方向,其長度我們并不關心,所以為了方便計算,我們采用直線的單位法向量來表示。所以有:
    a2+b2=1a^2+b^2=1 a2+b2=1

    iii個點到直線的距離,可以表示為向量(xi?x0,yi?y0)(x_i-x_0,y_i-y_0)(xi??x0?,yi??y0?)(a,b)(a,b)(a,b)方向上的投影的長度,所以目標函數可以寫成:
    J2=∑di2=∑([xi?x0,yi?y0]?[a,b])2a2+b2=∑[a(xi?x0)+b(yi?y0)]2\begin{aligned} \bm{J}_2=\sum d_i^2&=\sum\dfrac{([x_i-x_0,y_i-y_0] \cdot [a,b])^2}{a^2+b^2} \\ &=\sum[a(x_i-x_0)+b(y_i-y_0)]^2 \end{aligned} J2?=di2??=a2+b2([xi??x0?,yi??y0?]?[a,b])2?=[a(xi??x0?)+b(yi??y0?)]2?

    將目標函數J2\bm{J}_2J2?分別對x0x_0x0?y0y_0y0?求導,并令其等于000,得:
    ?J2?x0=?2a∑[a(xi?x0)+b(yi?y0)]=0?J2?y0=?2b∑[a(xi?x0)+b(yi?y0)]=0\begin{aligned} \dfrac{\partial \bm{J}_2}{\partial x_0}&=-2a\sum[a(x_i-x_0)+b(y_i-y_0)]=0 \\ \dfrac{\partial \bm{J}_2}{\partial y_0}&=-2b\sum[a(x_i-x_0)+b(y_i-y_0)]=0 \end{aligned} ?x0??J2???y0??J2???=?2a[a(xi??x0?)+b(yi??y0?)]=0=?2b[a(xi??x0?)+b(yi??y0?)]=0?

    上式等號兩邊同時除以nnn,得:
    a(xˉ?x0)+b(yˉ?y0)=0a(\bar{x}-x_0)+b(\bar{y}-y_0)=0 a(xˉ?x0?)+b(yˉ??y0?)=0
    其中xˉ\bar{x}xˉyˉ\bar{y}yˉ?分別為xxxyyy的均值。

    很明顯,點(xˉ,yˉ)(\bar{x},\bar{y})(xˉ,yˉ?)滿足直線方程,所以一定在直線上。因此可以令x0=xˉx_0=\bar{x}x0?=xˉy0=yˉy_0=\bar{y}y0?=yˉ?。此時目標函數變為:
    J2=∑[a(xi?xˉ)+b(yi?yˉ)]2=[ab][∑(xi?xˉ)2∑(xi?barx)(yi?yˉ)∑(xi?xˉ)(yi?yˉ)∑(yi?yˉ)2][ab]\begin{aligned} \bm{J}_2&=\sum[a(x_i-\bar{x})+b(y_i-\bar{y})]^2 \\&=\left[ \begin{matrix} a & b \end{matrix}\right]\left[ \begin{matrix} \sum(x_i-\bar{x})^2 & \sum(x_i-bar{x})(y_i-\bar{y}) \\ \sum(x_i-\bar{x})(y_i-\bar{y}) & \sum(y_i-\bar{y})^2 \end{matrix}\right]\left[ \begin{matrix} a \\ b \end{matrix} \right] \end{aligned} J2??=[a(xi??xˉ)+b(yi??yˉ?)]2=[a?b?][(xi??xˉ)2(xi??xˉ)(yi??yˉ?)?(xi??barx)(yi??yˉ?)(yi??yˉ?)2?][ab?]?

    對目標函數J2\bm{J}_2J2?除以nnn可得:
    J2=[ab][sxxsxysxysyy][ab]=vTSv\begin{aligned} \bm{J}_2 &=\left[ \begin{matrix} a & b \end{matrix}\right]\left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix}\right]\left[ \begin{matrix} a \\ b \end{matrix} \right] \\&=\bm{v}^T\bm{S}\bm{v} \end{aligned} J2??=[a?b?][sxx?sxy??sxy?syy??][ab?]=vTSv?

    其中
    sxx\bm{s}_{xx}sxx?syy\bm{s}_{yy}syy?分別為xxxyyy的方差,sxy\bm{s}_{xy}sxy?xxxyyy的協方差,
    v=[ab]\bm{v}= \left[ \begin{matrix} a \\ b \end{matrix} \right]v=[ab?]S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]S=[sxx?sxy??sxy?syy??]

    很明顯,這是一個二次型求最小值的問題。因為S\bm{S}S為實對稱矩陣,所以可以將其進行正交對角化分解:
    S=[q1q2][λ100λ2][q1Tq2T]=QΛQT\begin{aligned} \bm{S} &= \left[ \begin{matrix} \bm{q}_1 & \bm{q}_2 \end{matrix} \right] \left[ \begin{matrix} \lambda_1 & 0\\ 0 & \lambda_2 \end{matrix} \right] \left[ \begin{matrix} \bm{q}_1^T \\ \bm{q}_2^T \end{matrix} \right] \\ &=\bm{Q}\bm{\Lambda}\bm{Q}^T \end{aligned} S?=[q1??q2??][λ1?0?0λ2??][q1T?q2T??]=QΛQT?
    其中λ1\lambda_1λ1?λ2\lambda_2λ2?為矩陣S\bm{S}S的特征值,q1\bm{q}_1q1?q2\bm{q}_2q2?為對應的特征向量,Q\bm{Q}Q為特征向量組成的矩陣,Λ\bm{\Lambda}Λ為特征值組成的對角矩陣。

    則有:
    J2=vTSv=(vTQ)Λ(vTQ)T\begin{aligned} \bm{J}_2&=\bm{v}^T\bm{S}\bm{v}\\ &=(\bm{v^T}\bm{Q})\bm{\Lambda}(\bm{v^T}\bm{Q})^T \end{aligned} J2??=vTSv=(vTQ)Λ(vTQ)T?
    u1=vTq1u_1=\bm{v}^T \bm{q}_1u1?=vTq1?u2=vTq2u_2=\bm{v}^T \bm{q}_2u2?=vTq2?u=[u1u2]\bm{u}=\left[ \begin{matrix} u_1 \\ u_2 \end{matrix} \right]u=[u1?u2??]則:
    J2=uTΛu=λ1u12+λ2u22\begin{aligned} \bm{J}_2&=\bm{u}^T\bm{\Lambda}\bm{u}\\ &=\lambda_1u_1^2+\lambda_2u_2^2 \end{aligned} J2??=uTΛu=λ1?u12?+λ2?u22??

    因為
    uTu=vTQQTv=vTv=1\bm{u}^T\bm{u}=\bm{v}^T\bm{Q}\bm{Q}^T\bm{v}=\bm{v}^T\bm{v}=1 uTu=vTQQTv=vTv=1
    所以u\bm{u}u為單位矩陣,即u12+u22=1u_1^2+u_2^2=1u12?+u22?=1。

    不妨設λ1≤λ2\lambda_1 \leq \lambda_2λ1?λ2?,則可以得到:當u1=1u_1=1u1?=1,u2=0u_2=0u2?=0的時候,J2\bm{J}_2J2?取得最小值λ1\lambda_1λ1?。即v=q1\bm{v}=\bm{q}_1v=q1?

    所以最終結果是擬合直線的法向量v\bm{v}v等于對應矩陣S\bm{S}S最小特征值的特征向量。

    結果整理

    擬合直線方程為:a(x?x0)+b(y?y0)=0a(x-x_0)+b(y-y_0)=0a(x?x0?)+b(y?y0?)=0。其中(x0,y0)(x_0,y_0)(x0?,y0?)為直線上一點,向量u=[ab]\bm{u}=\left[ \begin{matrix} a\\ b \end{matrix}\right]u=[ab?]為直線的法向量。

    最后結果為:
    x0=xˉx_0=\bar{x}x0?=xˉy0=yˉy_0=\bar{y}y0?=yˉ?

    擬合直線的法向量v=[ab]\bm{v}=\left[ \begin{matrix} a\\ b \end{matrix}\right]v=[ab?]為矩陣S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]S=[sxx?sxy??sxy?syy??]的最小特征值對應的特征向量。

    幾何意義

    從正交回歸的直觀上的理解是:在二維平面上找到一條直線,使得每個點到直線的垂直距離之和最小。也就是說,正交回歸優化的是垂直距離。

    上圖中紅色線段即為每個點的豎直誤差,正交回歸就是找到這樣一條直線,使得紅色線段的和最小。

    總結

    以上是生活随笔為你收集整理的线性拟合2-正交回归的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。