吴恩达机器学习ex1MATLAB实现完整版

前言:线性回归的实现在机器学习中是相对比较容易理解和实现的,最近回顾了一下之前学的线性回归,重新理了一下吴恩达的作业,加之之前做的时候很多地方不明白。因此,重新将其实现一遍。

简单来说,利用梯度下降算法求解线性回归方程主要分为两步:1、计算代价函数;2、最小化代价函数得到参数θ。

下面依次来实现单变量和多变量的线性回归问题。

单变量问题

computeCost.m

这个函数的作用就是计算代价函数,代价函数的计算公式如下。

对于的MATLAB代码实现也相当简单 ,这里采用向量化的方式实现。

function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
%   J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
%   parameter for linear regression to fit the data points in X and y

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly 
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
%               You should set J to the cost.
J = sum((X * theta - y) .^ 2 ) / (2 * m);
% =========================================================================
end

gradientDescent..m

这个函数的作用就是进行梯度下降运算,在运行梯度下降时唯一需要注意的就是对于σ变量的同步更新。通过一定次数的迭代,可以得到目标参数σ的值。

同样,这里的代码也采用向量化实现。在代码中定义了一个temp变量,用来临时存储计算的θ值,在所有的θ值计算完毕后做到同时更新。</

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值