最近开始看斯坦福的公开课《Machine Learning》,对其中单参数的Linear Regression(未涉及Gradient Descent)做个总结吧。
【设想】
    最近想要租房,收集了一些信息,得知房价与房间大小有关,那成本函数就可以预测在不同房间大小下租房的价格(PS:价格可能也与该房地理有关,那若把大小和距离市中心距离一并考虑,则属于多参数的线性回归)
【数据】
    1、准备一个ex1data1.txt,第一列为年龄,第二列为价格
    2、导入matlab
          data = load('ex1data1.txt');
    3、赋值给不同的变量
          X = data(:,1);            %第一列年龄作为X
          y = data(:,2);             %第二列价格作为y
    4、查看导入的数据
          plot(X, y,'rx','MarkerSize',10);
         
         我们需要找到一条y=a+bx的直线(a=theta0,b=theta1),最大程度的拟合上图中的点,那如何取得a与b的值,则运用了成本函数,如下:
【公式】
         
                
【MatLab】
data = load('ex1data1.txt');
y = data(:,2);      %选取价格作为y变量

m = length(y);

X = [ones(m, 1), data(:,1)];   %选取房间大小作为第二列,第一列为1
theta0_vals = linspace(-3,3,100);    %确定theta0轴的范围为[-3,3],100个刻度
theta1_vals = linspace(-1,1,100);
for i=1:length(theta0_vals)          %循环执行computeCost函数,找到min(J_vals)的theta0和theta1值  
    for j=1:length(theta1_vals)
         t = [theta0_vals(i); theta1_vals(j)];
         J_vals(i,j) = computeCost(X, y, t);
    end
end
% Because of the way meshgrids work in the surf command, we need to 
% transpose J_vals before calling surf, or else the axes will be flipped
J_vals = J_vals';
% Surface plot
figure;
surf(theta0_vals, theta1_vals, J_vals)
xlabel('\theta_0'); ylabel('\theta_1');


% eg:X(i,:)= [1,6] 
% eg:t= 
   

function J = computeCost(X, y, theta)
m = length(y); % 训练集个数
 
J = 0;
h=0;
for i= 1:m
    h = h + (theta' * X(i,:)'-y(i))^2;  %实现J(theta)公式的后半部
end
J = 1/(2*m)*h
end

eg:
,这就是为什么X变量要特地赋成两列,为了实现a+bx的矩阵效果

 
【可视化结果】
 
         

参考:
斯坦福机器学习的课后习题及程序:
下载

【Machine Learning】单参数线性回归 Linear Regression with one variable的更多相关文章

  1. [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率

    单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...

  2. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...

  3. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  4. 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 I 2.4  代价函数的直观理解 I ...

  5. Machine Learning 学习笔记2 - linear regression with one variable(单变量线性回归)

    一.Model representation(模型表示) 1.1 训练集 由训练样例(training example)组成的集合就是训练集(training set), 如下图所示, 其中(x,y) ...

  6. Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)

    本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...

  7. 机器学习(二)--------单变量线性回归(Linear Regression with One Variable)

    面积与房价 训练集 (Training Set) Size       Price 2104       460 852         178 ...... m代表训练集中实例的数量x代表输入变量 ...

  8. 吴恩达机器学习(二) 单变量线性回归(Linear Regression with one variable)

    一.模型表示 1.一些术语 如下图,房价预测.训练集给出了房屋面积和价格,下面介绍一些术语: x:输入变量或输入特征(input variable/features). y:输出变量或目标变量(out ...

  9. 单变量线性回归(Linear Regression with One Variable)与代价函数

    所谓的单变量线性回归问题就是监督学习的一部分. 通过构建数学模型给出一个相对准确的数值,也就是预测模型,通过将数据通过数学模型,衍生至回归问题 通过以下的几个例子,我们来研究单变量线性回归. 1.王阿 ...

随机推荐

  1. MVC验证12-使用DataAnnotationsExtensions对整型、邮件、最小值、文件类型、Url地址等验证

    原文:MVC验证12-使用DataAnnotationsExtensions对整型.邮件.最小值.文件类型.Url地址等验证 本文体验来自http://dataannotationsextension ...

  2. hdoj 4324 Triangle LOVE 【拓扑】

    Triangle LOVE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) To ...

  3. 【android】WebView缓存数据收集

    Android WebView 缓存 Android高手进阶教程(二十四)之---Android WebView的缓存!!! Android webView 缓存 Cache + HTML5离线功能 ...

  4. Linux---江湖

    Linux江湖13:我该如何备份系统 Posted on 2014-12-18 10:39 京山游侠 阅读(497) 评论(3) 编辑 收藏 在前面的一些文章中,我反复提到经常会把系统搞崩溃,所以备份 ...

  5. 开发者需要了解的WebKit

    2013-3-22 22:37| 发布者: sxwgf| 查看: 575| 评论: 0|来自: infoq 摘要: Paul Irish是著名的前端开发工程师,同时他也是Chrome开发者关系团队成员 ...

  6. avalon.js实现一个简易日历

    使用MVVM框架avalon.js实现一个简易日历   最近在做公司内部的运营管理系统,因为与日历密切相关,同时无需触发条件直接显示在页面上,所以针对这样的功能场景,我就用avalon快速实现了一个简 ...

  7. 使用 Visual C# .NET 生成 Office COM 外接程序

    Microsoft Office XP 和 Microsoft Office 2003 都支持一种新的统一的设计结构,这种结构用于生成应用程序外接程序以增强和控制 Office 应用程序.这些外接程序 ...

  8. mediawiki在windows下的安装

    mediawiki在windows下的安装 对于刚接触wiki的朋友们来说,配置一个服务器环境,安装并运行mediawiki是一件很麻烦的事情,在这里,我尽量用通俗易懂的语言,介绍mw(mediawi ...

  9. Function.prototype.toString

    语法:fn.toString(indentation) 改方法返回当前函数源代码的字符串,而且还可对此字符串进行操作,比如: function num(){ }; var str = num.toSt ...

  10. Visual Studio 2013 IIS Explorer 停止调试继续访问站点

    升级到2013后,在做调试的时候默认调试服务器是 IIS Explorer,当终止调试的时候再次访问调试站点时已经无法访问了.此时想预览一下感觉很不方便. 为了能够预览可以参考一下配置: Tools  ...