多变量线性回归(Multivariate Linear Regression)

作业来自链接:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex3/ex3.html

这次的多变量线性回归问题,输入特征向量X是二维的,一个维度表示房间面积,一个维度表示房间数量,输出Y是房子的价格。

这一次试着自己找了一下合适的学习速率和迭代次数

合适的学习速率通过看损失函数J()的下降曲线来判断

其中损失函数这样计算:

合适的损失函数下降曲线该是这样:

在线法进行迭代的时候,大约200次就会很好的收敛到真值。

而离线法的计算公式为:

可以很精确的计算出回归模型的参数。

作者多次提醒,在线法计算的时候,需要对各个维度的数据进行归一化,这样大大有利于参数收敛,可以很快的收敛到真值附近。

而离线算法是精确的求解线性方程组,不需要数据预处理,只需要特征向量X拓展一个截距项就行。

但是-------离线算法需要求解矩阵的逆,当数据量较大的时候,这个方法就不适合了。

clc
clear all;
close all;
x = load('ex3x.dat');%加载数据
y = load('ex3y.dat');
%%%%--------------------数据预处理----------------------%%%%%%
m = length(y);
x = [ones(m, ), x]; theta2=(x'*x)^(-1)*x'*y;%%%%%%%%%%%%--离线算法计算---%%%%%%%%%% sigma = std(x);%取方差
mu = mean(x);%取均值
x(:,) = (x(:,) - mu())./ sigma();%归一化
x(:,) = (x(:,) - mu())./ sigma();%归一化 theta = zeros(size(x(,:)))'; % initialize fitting parameters
alpha = 0.08; %% Your initial learning rate %%
J = zeros(, ); %初始化损失函数 for num_iterations = :
J(num_iterations) = //m*sum(x*theta-y)^;%批量梯度下降
theta = theta-alpha./m.*x'*(x*theta-y);%% 参数更新
end
% now plot J
% technically, the first J starts at the zero-eth iteration
% but Matlab/Octave doesn't have a zero index
figure;
plot(:, J(:), '-')
xlabel('Number of iterations')
ylabel('Cost J') x_test=[,,];%测试样本
y2=x_test*theta2 %------离线算法结果测试 x_test() = (x_test() - mu())./ sigma();%归一化
x_test() = (x_test() - mu())./ sigma();%归一化 y1=x_test*theta %-------在线迭代算法结果测试

deep learning 练习 多变量线性回归的更多相关文章

  1. deep learning 练习1 线性回归练习

    线性回归练习 跟着Andrew Ng做做练习:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLear ...

  2. 吴恩达Machine Learning学习笔记(二)--多变量线性回归

    回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围 ...

  3. [Machine Learning] 多变量线性回归(Linear Regression with Multiple Variable)-特征缩放-正规方程

    我们从上一篇博客中知道了关于单变量线性回归的相关问题,例如:什么是回归,什么是代价函数,什么是梯度下降法. 本节我们讲一下多变量线性回归.依然拿房价来举例,现在我们对房价模型增加更多的特征,例如房间数 ...

  4. 转载 Deep learning:三(Multivariance Linear Regression练习)

    前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage. ...

  5. Reading | 《DEEP LEARNING》

    目录 一.引言 1.什么是.为什么需要深度学习 2.简单的机器学习算法对数据表示的依赖 3.深度学习的历史趋势 最早的人工神经网络:旨在模拟生物学习的计算模型 神经网络第二次浪潮:联结主义connec ...

  6. Top Deep Learning Projects in github

    Top Deep Learning Projects A list of popular github projects related to deep learning (ranked by sta ...

  7. Deep Learning 6_深度学习UFLDL教程:Softmax Regression_Exercise(斯坦福大学深度学习教程)

    前言 练习内容:Exercise:Softmax Regression.完成MNIST手写数字数据库中手写数字的识别,即:用6万个已标注数据(即:6万张28*28的图像块(patches)),作训练数 ...

  8. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  9. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

随机推荐

  1. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  2. Web程序员常见的5个错误及解决方案

    我是那种脾气暴躁的web用户,但我认为正是如此才驱使我成为一名良好的web开发人员.我会对那些会导致使用网站变得困难的事情恼火,我认为事情越简单越方便越好.这里有五个常见的可用性错误,以及如何避免它们 ...

  3. springmvc 自定义注解 以及自定义注解的解析

    1,自定义注解名字 @Target({ElementType.TYPE, ElementType.METHOD})   //类名或方法上@Retention(RetentionPolicy.RUNTI ...

  4. jquery/js分割数组

    substr(star[,length]);//star起始位置 length截取的长度 substring(star,end);//star起始位置,end结束位置 都是以0开始的索引值

  5. php 获取静态方法调用的类名

    方法一: class foo { static public function test() { var_dump(get_called_class()); } } class bar extends ...

  6. web view调h5的方法死活调不到

    (WebViewJavascriptBridge注册方法都能调用,只有callhandlename时无论如何也没响应)这个问题真是纠缠我好久了 webview评论区刷新问题终于找到原因了 ,我试着把咨 ...

  7. 表连接,如何先筛选再 join

    想先筛选,再join ,语法如下  select * form tab1 left join tab2 on (tab1.size = tab2.size and tab2.name='AAA') 注 ...

  8. 计算ffff:0~ffff:b数据的和,结果存在dx中

    代码: assume cs:sad sad segment start: mov ax, 0ffffh mov ds, ax mov dx, ; add ds:0bh~ds:1h mov cx, 0b ...

  9. requestAnimationFrame

    (function() { var lastTime = 0; var vendors = ['webkit', 'moz']; for(var x = 0; x < vendors.lengt ...

  10. 两种设置disabled属性以及三种方法移除disabled属性

    //两种方法设置disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("dis ...