在工程實踐中,經常遇到類似的問題:
我們做了n次實驗,獲得了一組資料
然後,我們希望知道x和
y之間的函式關係。所以我們將其描繪在
xoy直角座標系下,得到下面這麼一張點雲圖:
然後,我們發現,x和
y「可能」是線性的關係,因為我們可以用一條直線大致的將所有的樣本點串連起來,如下圖:
所以,我們可以「猜測」
b的值。
這看起來是乙個很簡單的問題,a和
b是兩個未知數,我們只需要隨意找出兩個樣本點
兩個未知數,兩個方程,就可以求解出a和
b的值。
然而,在這裡是不對的,或者說是不準確的。為什麼呢?因為
那怎麼辦呢?既然是「猜測」的,那麼就存在誤差。那麼我們將這個函式關係稍加修正為:
這裡,既然是「猜測」,那我們當然希望猜得準一點。那怎麼衡量準確呢?自然和e有關係。
上式變型後可得:
在這裡,a和
b才是自變數,
e是函式值。
這裡是最容易搞糊塗的地方,為什麼a,b是自變數,而不是
x,y?
這就要提及「曲線擬合」的概念。所謂「擬合」就是說我們要找到乙個函式,來「匹配」我們在實驗中獲得的樣本值。放到上面的例子,就是我們要調整a和
b的值,來使得這個函式和實驗中獲得的資料更加「匹配」。所以,a和
b才是「曲線擬合」過程中的自變數。
接下來,繼續如何讓誤差更小的問題。
「最小二乘法」的思想核心,就是定義乙個損失函式:
顯然,如果我們調整a和
b,使得
q達到最小,那麼「曲線擬合」的誤差也會最小。
這裡,q是
a,b的函式。根據高等數學的只是,
q的最小值點必然是其導數為
0的點。
所以,我們令:
求解上述方程組,則可以解得a和
b的值。這就是最小二乘法的整個過程。
最後說明:
(1)最小二乘法英文名least squares,其實翻譯成「最小平方法」,更容易讓人理解。其核心就是定義了損失函式;
(2)評價誤差的方法不止乙個,還有諸如
(3)最小二乘法不僅可以用於一次函式的擬合,還可以用於更高次函式的擬合;
(4)最小二乘法既是一種曲線擬合的方法,也可用於最優化。
最小二乘法曲線擬合
設有如下實驗資料x1 2345 6789 1011 1213 141516y 46.4 88.8 9.22 9.59.7 9.86 1010.2 10.32 10.42 10.5 10.55 10.58 10.60 試用最小二乘法多次 1到5次 多項式曲線擬合以上資料。import numpy as...
最小二乘法曲線擬合
在實際工程中,我們常會遇到這種問題 已知一組點的橫縱座標,需要繪製出一條盡可能逼近這些點的曲線 或直線 以進行進一步進行加工或者分析兩個變數之間的相互關係。而獲取這個曲線方程的過程就是曲線擬合。首先,我們從曲線擬合的最簡單情況 直線擬合來引入問題。如果待擬合點集近似排列在一條直線上時,我們可以設直線...
最小二乘法的曲線擬合
最小二乘法的曲線擬合 bool cdatadistillview leastdoublemultiplication long px,long py,long m,long n,double result,double warp for i 0 i m i z 0 b 0 1 d1 n p 0 c ...