您的位置:首页 > 其它

深度学习(线性回归练习)

2016-08-17 16:58 302 查看

线性回归

我是在博客园中找到了一些深度学习的编程链接,打算最近练习一下。

深度学习编程练习

今天复习了一下使用梯度下降法求解线性回归问题,忘记了梯度下降法,找了一个链接看了一下,主要记住代价函数公式定义和参数更新的过程。

梯度下降法

下面是我在Matlab上做的链接中的练习题,题目内容大致是对给定的一组年龄和身高的关系进行线性拟合。

%%导入数据
clear;
clc;
close all;
x=load('ex2x.dat');
y=load('ex2y.dat');
%画图
figure;
plot(x,y,'o');
hold on;
%%梯度下降法
x=[ones(50,1),x];
theta=zeros(length(x(1,:)),1);
MAX_intera=1000;    %最大迭代次数
m=size(x,1);        %样本个数
alpha=0.01;         %学习速率
for i=1:MAX_intera
grad=(1/m).*x'*(x*theta-y);
theta=theta-alpha.*grad;
end
%% 画图表示
%画出预测结果
plot(x(:,2),x*theta,'--');
legend('Training data', 'Linear regression');
hold off
figure;
theta0=linspace(-3,3,100);
theta1=linspace(-3,3,100);
J=zeros(length(theta0),length(theta1));
for i=1:length(theta0)
for j=1:length(theta1)
t=[theta0(i),theta1(j)];
J(i,j)=(0.5/m).*((x*t')-y)'*((x*t')-y);
end
end
[x,y]=meshgrid(theta0,theta1);
surf(theta0,theta1,J);
figure;
contour(theta0, theta1,J, logspace(-2, 2, 15));


结果显示



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: