实验三线性回归分析解析.doc
文本预览下载声明
实验三 线性回归分析
一、实验学时
4学时(课内2学时,课外2学时)
二、实验类型
验证性实验
三、实验目的
1、熟悉matlab的开发环境
2、掌握线性回归分析的基本理论
3、线性回归公式推导
4、用matlab实现线性回归分析
四、所需设备及软件
1、安装了windows xp/win7/win8/win10的计算机
2、matlab开发工具
五、实验基本原理
1、回归分析基本概述
利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。分析按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。
在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。
2、线性回归模型
利用线性回归分析来解决实际问题,关键需要计算这个回归模型,根据模型进行预测。
例子:以一简单数据组来说明什么是线性回归。假设有一组数据型态为 y=y(x),其中x={0, 1, 2, 3, 4, 5}, y={, 25, 50, 78, 88, 110},如果要以一个最简单的方程式来近似这组数据,则用一阶的线性方程式最为适合y=bx+a,需要根据已知的数据,来计算出a和b的值。如果有新的x,即可根据这个模型预测其对应的y。见下图
问题是如何估计a、b的值,使得y=bx+a能比较精确的刻画已知的数据,使之成为理想的线性方程。针对多元线性回归,则有形如:h(x)=θ0+θ1x1+θ2x2+...+θnxn如何估计θi的值?
3、模型训练思路
可以要求误差平方的总和最小,作为确定理想的线性方程的训练目标,这样的方法称为最小平方误差(least squares error)或是线性回归
对于h(x)=θ0+θ1x1+θ2x2+...+θnxn
目标函数:min J(θ)= 刻画真实值y与拟合值h(x)之间的距离
要计算最小值,则使用梯度下降法,调用上面的目标函数进行不断迭代,直到最大迭代次数达到给定标准或者目标函数返回值不再减小。
梯度下降包括两个方面:
1)梯度的计算:计算偏导
2)梯度下降法,更新公式θi=θi-
4、算法
1)初始化
2)指定训练次数
3)循环执行循环体“训练次数”
θi=θi-
4)绘制图形(用plot)
5)进行预测
六、实验内容
1、一元线性回归模型的建立
程序编写:有两组数据ex2x.dat和ex2y.dat,通过线性回归分析方法,求解回归分析方程。要求显示训练后的theta值,绘制实际数据和回归方程的图形。plot绘制图形。
附:plot的用法 简单格式plot(x,y,*)
x=load(ex2x.dat);
y=load(ex2y.dat);
m=length(y);
x=[ones(m,1),x];
plot(x(:,2),y,*);
theta=rand(2,1);
alpha=0.05;
iterations=1500;
for iter=1:iterations
grad=x*(y-x*theta);
theta=theta+alpha*grad./m;
end
fprintf(theta found by gradient descent:);
fprintf(%f,%f\n,theta(1),theta(2));
hold on;
plot(x(:,2),x*theta,-);
legend(Training data,Linear regression);
hold off;
fprintf(Visualizing J(theta_0,theta_1)…\n);
theta0_vals=linspace(-3,3,100);
theta1_vals=linspace(-1,1,100);
theta found by gradient descent:0.750078,0.063896
2、多元线性回归模型的建立和对模型测试
1)程序编写:有一个数据集housing.txt,要求将数据分成两个部分:训练数据和测试
显示全部