一、插值和擬合的區別
插值算法中,得到的多項式f(x)要經過所有樣本點。但是如果樣本點太多,那么這個多項式次數過高,會造成龍格現象。 盡管我們可以選擇分段的方法避免這種現象,但是更多時候我們更傾向于得到一個確定的曲線,盡管這條曲線不能經過每一個樣本點,但只要保證誤差足夠小即可,這就是擬合的思想。(擬合的結果是得到一個確定的曲線)
一個小例子:
x
y
4.2
8.4
5.9
11.7
2.7
4.2
3.8
6.1
3.8
7.9
5.6
10.2
6.9
13.2
3.5
6.6
3.6
6
2.9
4.6
4.2
8.4
6.1
12
5.5
10.3
6.6
13.3
2.9
4.6
3.3
6.7
5.9
10.8
6
11.5
5.6
9.9
對x,y數據繪制散點圖,我們發現他們都散落在一個直線周圍,此時我們想構造一個y=kx+b的直線來當作擬合函數。
最小二乘法的解釋設這些樣本點
我們設置的擬合曲線y=kx+b
問題:k和b取何值時,樣本點和擬合曲線最接近。
也就是說樣本點和擬合函數值之間的差值最小
第一種定義:
第二種定義:
第一種有絕對值定義,不容易求導,因此計算比較復雜。
所以我們往往使用第二種定義,這也是最小二乘的思想。
為什么不用四次方?
(1)避免極端數據對擬合曲線的影響
(2)最小二乘法得到的結果和MLE極大似然估計一致
不用奇數次方的原因:誤差會正負相抵。
求解最小二乘法:設這些樣本點,我們設置的擬合曲線
所以擬合值為
那么
令,現在就要找k、b使得L最小
(L在機器學習中常常成為損失函數,在回歸中也常被稱為殘差平方和)
下面為的計算過程
參數k的計算過程
同理可得,
clear;clc load lf_data1.mat plot(x,y,'o'); xlabel('x的值') ylabel('y的值') n = size(x,1); k = (n*sum(x.*y)-sum(y)*sum(x))/(n*sum(x.^2) - sum(x)*sum(x)); b = (sum(x.^2)*sum(y)-sum(x)*sum(x.*y))/(n*sum(x.^2) - sum(x)*sum(x)); hold on % 繼續在之前的圖上繪制 grid on % 顯示網格線 f = @(x) k*x + b fplot(f,[2.5,7]) legend('Sample data', 'Fitting function','location','southeast')
繪制出擬合函數的圖像如下圖所示,可以看到直線盡可能的接近于樣本點。
那么如何評價擬合的好壞?擬合優度(可決系數)
總體平方和SST,Total sum of squares:
誤差平方和SSE,The sum of squares:
回歸平方和SSR,Sum of squares of the regression:
可以證明:SST = SSE + SSR(證明過程在后面)
擬合優度:
R^2越接近1,說明誤差平方和越接近于0,誤差越小說明擬合越好。
(注意:只能用于擬合函數是線性函數時,擬合結果的評價)
線性函數和其他函數(例如復雜的函數)比較擬合的好壞,直接看SSE即可
未來我們會見到是個負數
證明:SST = SSE + SSR總體平方和SST,Total sum of squares:
誤差平方和SSE,The sum of squares:
回歸平方和SSR,Sum of squares of the regression:
一階導數條件:
首先我們要明白一個原則那就是,我們使用擬合函數的初衷就是要得到一個簡單的擬合函數來刻畫這些樣本點,但是一味地追求的話,那豈不是使用插值多項式更好?因為插值多項式肯定會經過這些所有樣本點,那么SSE就等于0,這樣的話擬合函數就是插值多項式,但這違背了我們使用擬合函數的初衷。所以說,沒有明確的說到底控制在什么范圍內是最好的,這是一個涉及到取舍的問題。但原則是擬合函數越簡單,擬合誤差越小。
”線性函數“的介紹思考一下:是一個線性函數嗎?
對于線性有兩種解釋,一種是對變量線性,也就是對x線性,很明顯這里x是平方,所以對x來說肯定不是線性函數。
第二種是對參數線性,對于a和b來講,此時函數是線性函數,且對參數線性,因為x是已知的樣本點。
所以,需要注意,在擬合這里我們討論的是對參數線性。
如何判斷線性于參數的函數?
在函數中,參數僅以一次方出現,且不能創意或者除一其他任何參數,并且不能出現參數的復合函數形式。
例如,都不是線性函數,不能用
計算擬合優度 % 計算擬合優度 hat_y = k * x + b; SST = sum((y - mean(y)).^2) SSE = sum((y - hat_y).^2) SSR = sum((hat_y - mean(y)).^2) SST-SSE-SSR % 計算存在誤差,不然應該是等于0的 R_2 = 1 - SSE/SST % 最終結果0.9635
中心化(標準化)公式
本文發布于:2023-02-28 21:07:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167772709799717.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:擬合值(擬合值怎么算).doc
本文 PDF 下載地址:擬合值(擬合值怎么算).pdf
| 留言與評論(共有 0 條評論) |