[Exercise 1] Linear Regression

原创 2015年07月10日 15:41:23

数据描述

这次练习是多元线性回归中最简单的二元线性回归,参考exericse1给出的题目,50个数据样本点,其中x为这50个小朋友到的年龄,年龄为2岁到8岁,年龄小数形式呈现。Y为这50个小朋友对应的身高,小数形式表示的。

线性回归

回想一下线性回归模型hθ(x)=θTx=i=1nθixi
梯度更新规则:θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)
J(θ)公式:J(θ)=12mi=1m(hθ(x(i))y(i))2
实验内容:
1. 实现梯度下降α=0.07
2. 迭代计算θ0θ1
3. 预测x = 3 .5 和x=7

实验结果和程序[matlab]

求解问题可以通过2个方法求解normal equation和gradient descend.

x = load('ex2x.dat');
y = load('ex2y.dat');

figure
plot(x,y,'o')
xlabel('Age in years')
ylabel('Height in meters')

m = length(y);  %store the number of training examples
x = [ones(m,1), x]; %Add a colum of ones to x
w = inv(x'*x)*x'*y
hold on
% w = 0.7502 0.0639
plot(x(:,2), 0.0639*x(:,2) + 0.7502)

这里写图片描述

  • 采用gradient descend过程求解:
%exercise 2 linearRegression
%gradient descent update 
% x refers to a boy's age
% y is a boy's height in meters

clear all; close all,clc
x = load('ex2x.dat'); y = load('ex2y.dat');
m = length(y);

% plot the traning
figure;
plot(x,y,'o')
ylabel('Height in meters')
xlabel('Age in years')

% gradient descent 
x = [ones(m,1), x];
theta = zeros(size(x(1,:)))';
MAX_ITR = 1500;
alpha = 0.07;

for num_iterations = 1:MAX_ITR
    grad = (1/m).*x'*(x*theta - y);
    theta = theta - alpha.*grad;    
end
%print theta to screeen
theta

%plot the linear fit
hold on;
plot(x(:,2), x*theta, '-')
legend('Traning data', 'Linear regression')
hold off

exact_theta = (x'*x)\x'*y
%predict values for age 3.5 and 7
predict1 = [1, 3.5]*theta
predict2 = [1, 7]*theta

%calculate J matrx
theta0_vals = linspace(-3,3,100);
theta1_vals = linspace(-1,1,100);
J_vals = zeros(length(theta0_vals), length(theta1_vals));

for i = 1:length(theta0_vals)
    for j = 1:length(theta1_vals)
    t = [theta0_vals(i); theta1_vals(j)];
    J_vals(i,j) = (0.5/m).*(x*t - y)'*(x*t - y);
    end

end

J_vals = J_vals';
figure;
surf(theta0_vals, theta1_vals, J_vals)
xlabel('\theta_0');
ylabel('\theta_1');

figure;
contour(theta0_vals, theta1_vals, J_vals, logspace(-2,2,15))
xlabel('\theta_0');
ylabel('\theta_1');

这里写图片描述
这里写图片描述

这里写图片描述

参考资料:

  1. http://blog.csdn.net/xiazdong/article/details/7950087
  2. http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html
  3. http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2961660.html

随机神经网络之模拟退火

一、引言     在机器学习以及优化组合问题中,最常用的方法就是梯度下降法。比如BP神经网络,多层感知器的神经元(units)越多,对应的权矩阵也就越大,每个权可视为一个自由度或者变量。我们知道自由度...

《加州理工学院公开课:机器学习与数据挖掘》第2讲学习笔记

课程首先回顾了第1讲内容:Learning(机器学习)被使用到的三个条件: 模式存在(pattern exist),无法使用精确的数学模型表达,数据。 实际情况中,如果只满足第3个条件,就是拥有数...

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression

斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression 1  Linear regression with one variable ...
  • E_pen
  • E_pen
  • 2015年02月03日 23:10
  • 3102

Programming Exercise 1: Linear Regression Machine Learning

大家好,今天总结Coursera网课上Andrew Ng MachineLearning 第一次作业 1.computeCost.mfunction J = computeCost(X, y, th...

Coursera Machine Learning 第二周 quiz Programming Exercise 1: Linear Regression

warmUpExercise.m A = eye(5); computeCost.m

斯坦福:机器学习CS229:Exercise 1: Linear Regression线性回归(答案1)

先贴代码,有空再根据讲义,逐条讲解%% Machine Learning Online Class - Exercise 1: Linear Regression% Instructions % ...

【机器学习笔记3】Stanford公开课Exercise 2——Linear Regression

Stanford公开课Exercise 2原题地址:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=Machi...
  • achuo
  • achuo
  • 2016年04月15日 11:22
  • 397

Deep Learning Exercise: Linear Regression

Deep Learning Exercise: Linear Regression简介最简单的二元线性回归,参考斯坦福大学教学网http://openclassroom.stanford.edu/Ma...

theano linear regression exercise(theano 线性回归练习)

最近学习theano工具包 做deep learning,这个包最令人激动的是自动导数计算,你给出符号化的...

Programming Exercise 5: Regularized Linear Regression and Bias v.s. Variance Machine Learning

大家好,今天总结Coursera网课上Andrew Ng MachineLearning 第五次作业 (1) linearRegCostFunction.m function [J, grad] =...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Exercise 1] Linear Regression
举报原因:
原因补充:

(最多只允许输入30个字)