image.png
拟合算法
差值函数:曲线一定经过给出的样本点
而拟合问题的目标是寻求一个完整的函数,使得该曲线在某种准则下与所有的数据点最为接近,即曲线的拟合度最好(最小化损失函数)
样本点个数n>30时,称为大样本,一般用拟合。
如何定义拟合的曲线和和真实曲线最接近?
最小二乘法:拟合的值与真实值的差的平方和最小时的
:
image.png
数学表达:
image.png
则L为损失函数/残差平方和
易求得
image.png
MATLAB函数求拟合函数
形状像一次线性函数的:
先做散点图,把现有的数据画出来
然后如果形状类似一次线性函数,那么先假设
形式的函数。
利用已知的x,y求出k和b,然后画图把两个数据都展示出来
再求出SSE误差平方和,判断是否可以
%% 求拟合函数
clc;clear
load data1
n=size(x,1);
xlabel('x的值')
ylabel('y的值')
k=(n * sum(x .* y) - sum(y) * sum(x))/(n * sum(x .* x) - sum(x) * sum(x))
b=(sum(x .* x) * sum(y) - sum(x) * sum(x .* y))/(n * sum(x .* x) - sum(x) * sum(x))
% k =
%
% 2.0948
% b =
%
% -1.0548
% 画图
plot(x,y,'o');
hold on
grid on
f=@(x)k*x+b; % 匿名函数
fplot(f,[min(x),max(x)])
legend('样本数据','拟合函数','location','SouthEast')
% 评价拟合函数
y_hat=k*x+b;
SST=sum((y-mean(y)) .^ 2) % 总体平方和
SSE=sum((y-y_hat) .^ 2) % 误差平方和
SSR=sum((y_hat - mean(y)) .^ 2) % 回归平方和
R_2=SSR/SST % 拟合优度
% SST =
%
% 156.8863
%
%
% SSE =
%
% 5.7281
%
%
% SSR =
%
% 151.1583
%
%
% R_2 =
%
% 0.9635
第二种方法:
利用cftool作图。
多选择几个模式比较
多项式逼近选择维度看看
作出表格,写出结论