线性回归——最小二乘法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/charie411/article/details/72732211

引用

线性回归——最小二乘法2


线性回归

简单线性回归:对数据做散点图后,发现有线性相关趋势,因此利用线性回归方法获取散点拟合直线方程式,拟合指标是误差平方和。
利用matlab或者Octave进行线性拟合时,可以用polyfit(x,y,n)函数,但线性回归计算方法是什么呢?根据引用网站,线性回归有最小二乘法、梯度下降法、最大似然法,这里先学习最小二乘法。


最小二乘法

推导
多元线性方程:
y=w0+w1x1+w2x2+...+wnxn

系数阵W和变量
W= w0w1...wn  ,X= 11...1x11x21...xn1............x1nx2n...xnn

….

最终得到W为线性方程的系数矩阵(常数项为第一位,与系数阵排列格式一致)。


举例

简单线性回归

利用最小二乘法进行简单线性回归,等我遇到多元线性回归问题再补充:

Brand and Model Price Rating
Precor 3700 87
Key 2500 84
Octane 2800 82
Life 1900 74
Nordic 1000 73
Schwinn 800 69
Vision 1700 68
Pro 600 55

对不同产品的价格与评分进行简单线性回归:
Matlab/Octave代码:

%%W为系数阵,w0为常数项,w1为一次项系数,X为x的矩阵,Y为y矩阵
W=[w0;w1];
X=[1,3700;1,2500;1,2800;1,1900;1,1000;1,800;1,1700;1,600];
Y=[87;84;82;74;73;69;68;55];
%%利用最小二乘法计算W
W=inv(X'*X)*X'*Y;

所得结果

W=
5.8158e+001
8.4488e-003

即线性回归方程为:y=5.8158e+001+ 8.4488e-003*x;
利用Octave的polyfit函数验证

x=X(:,2)';
y=Y';
polyfit(x,y,1)

所得结果为

ans=
8.4488e-003 5.8158e+001

注:Octave的最后一项才是常数项,需要注意


To be continued.

猜你喜欢

转载自blog.csdn.net/charie411/article/details/72732211