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

本文详细介绍了如何使用MATLAB实现吴恩达机器学习课程中的线性回归,涵盖单变量和多变量问题。通过computeCost和gradientDescent函数实现代价函数计算与梯度下降算法,对特征进行归一化处理。此外,还对比了正规方程与梯度下降在求解线性回归中的应用,并展示了实际房价预测的结果。
摘要由CSDN通过智能技术生成

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

简单来说,利用梯度下降算法求解线性回归方程主要分为两步: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变量,用来临时存储计算的θ值,在所有的θ值计算完毕后做到同时更新。</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值