- 4
- 0
- 约1.17千字
- 约 5页
- 2023-07-07 发布于山东
- 举报
使偏差平方和最小的原则称为最小二乘原则,按照该原则拟合曲线称为最小二乘法。首先我了解了线性回归相关数学原理。
线性回归:线性回归假设数据集中特征与结果存在着线性关系;等式:y = mx + c
y为结果,x为特征,m为系数,c为误差 在数学中m为梯度c为截距。这个等式为我们假设的,我们需要找到m、c使得mx+c得到的结果与真实的y误差最小,这里使用平方差来衡量估计值与真实值得误差(如果只用差值就可能会存在负数); 用于计算真实值与预测值的误差的函数称为:平方损失函数(squard loss function);这里用L表示损失函数,所以有:
整个数据集上的平均损失为:
我们要求得最匹配的m与c使得L最小;数学表达式可以表示为:
最小二乘法用于求目标函数的最优值,它通过最小化误差的平方和寻找匹配项。这里将用最小二乘法用于求得线性回归的最优解。数据集有1…N个数据组成,每个数据由、构成,x表示特征,y为结果;这里将线性回归模型定义为:
平均损失函数定义有:
要求得L的最小,其关于c与m的偏导数定为0,所以求偏导数,得出后让导数等于0,并对c与m求解便能得到最小的L此时的c与m便是最匹配该模型的;
关于c的偏导数,把L的等式中不包含c的项去掉得:
整理式子把不包含下标n的往累加和外移得到:
对c求偏导数得:
关于m的偏导数:
求关于m的偏导数,因此把L等式中不包含项去掉得:
整理式子把不包含下标n的往累加和外移得到:
对m求偏导数得:
令关于c的偏导数等于0,求解:
从上求解得到的值可以看出,上面式子中存在两个平均值,因此该等式也可以改写成:
令关于m的偏导数等于0,求解:关于m的偏导数依赖于c,又因为已经求得了关于c偏导数的解,因此把求关于c偏导数的
解代数关于m的偏导数式子得:
合并含有m的项化简:
求解:
polyfit(n,x,y,poly_n,a)拟合y=a0+a1*x+a2*x^2+……+apoly_n*x^poly_n
polyfit(n,x,y,poly_n,a)
拟合y=a0+a1*x+a2*x^2+……+apoly_n*x^poly_n
n是数据个数 xy是数据值 poly_n是多项式的项数
返回a0,a1,a2,……a[poly_n],系数比项数多一(常数项)
为变量申请空间
为变量申请空间
高斯消元法计算得到 n 次多项式的系数n: 系数的个数
高斯消元法计算得到 n 次多项式的系数
n: 系数的个数
ata: 线性矩阵
sumxy: 线性方程组的Y值
p: 返回拟合的结果
/*====================
实验结果:
Matlab实现:
载入数据
载入数据
对数据进行转置,并进行最小二程拟合得到拟合系数
对数据进行转置,并进行最小二程拟合
得到拟合系数
绘制图像得:
原创力文档

文档评论(0)