寻求一个函数,使得该函数曲线在某种准则下与所有的数据最为接近(拟合最好,最小化损失函数)。
拟合的曲线不一定要经过给定的点,拟合的结果是得到一个确定的曲线。
确定拟合曲线
最小二乘法:用第二种定义,好求导。
让真实值-拟合值的和最小
上方argmin:即使函数最小时的参数k,b。
函数分别对k和b求导=0,找极小值。
为什么用第二种定义:
绝对值不好求导;
奇次方误差正负相抵;
四次方可能有极端数据影响拟合曲线;
最小二乘法得到的结果和极大似然估计一致。
MATLAB求解最小二乘
把表达式用matlab写出来,计算出k,b,生成一组xx,yy=k*xx+b画出拟合曲线。或者用匿名函数画图。
拟合优度(可决系数R^2)
只能用于对参数线性的函数拟合结果的评价,主要看SSE。
拟合的函数:
y_hat = k*x + b
判断拟合的好坏:
总体平方和SST:(真实值-平均值)平方的和
sum((y-mean(y)).^2)%mean()求均值
误差平方和SSE:(真实值-拟合值)平方的和
sum((y_hat-y).^2)
回归平方和SSR:(拟合值-平均值)平方的和
sum((y_hat-mean(y)).^2)
SST=SSR+SSR
拟合工具箱cftool
APP里面的Curve Fitting
Curve Fitting
Fit name数据
x自变量
y因变量
z二元函数的因变量
SSE
R-square:R^2
自定义拟合函数:Custom Equation,计算函数预测要将原公式的乘除改成点乘点除。
Fit Options设置参数(范围)可以调整拟合的精度
生成代码:文件-Generate Code
直接复制函数后面的部分到主代码中即可调用。
保存图像:文件-Print to Figure