吴恩达机器学习课后习题(一):线性回归

这篇博客主要介绍了吴恩达机器学习课程中的线性回归练习,包括Octave/MATLAB的基础操作、单变量线性回归的实现,如绘制数据、梯度下降和可视化J(θ),以及多变量线性回归的特征归一化和梯度下降。博主通过代码示例解释了如何进行数据处理、计算成本函数和执行梯度下降算法。
摘要由CSDN通过智能技术生成

(硬着头皮写完了,但是不理解我写的是什么,为什么要这样写?)

1. 简单的Octave / MATLAB功能

ex1.m的第一部分为您提供Octave / MATLAB语法和作业提交过程。在文件warmUpExercise.m中,您将找到Octave / MATLAB函数的轮廓。通过填写以下代码修改它以返回5 x 5的矩阵:

function A = warmUpExercise()
%WARMUPEXERCISE Example function in octave
%   A = WARMUPEXERCISE() is an example function that returns the 5x5 identity matrix

A = [];
% ============= YOUR CODE HERE ==============
% Instructions: Return the 5x5 identity matrix 
%               In octave, we return values by defining which variables
%               represent the return values (at the top of the file)
%               and then set them accordingly. 
A=eye(5);
% ===========================================
end

完成后,运行ex1.m(假设您位于正确的目录中,在Octave / MATLAB提示符下键入“ ex1”),您应该看到输出类似于以下内容:
在这里插入图片描述
现在ex1.m将暂停,直到您按任意键,然后运行代码在下一部分作业中。如果您想退出,请输入ctrl-c在运行过程中停止该程序。

1.1 提交解决方案

完成一部分练习后,您可以提交解决方案通过在Octave / MATLAB命令行中输入Submit进行评分。子任务脚本将提示您输入登录电子邮件和提交令牌并询问您要提交的文件。您可以获取提交网页中用于分配的令牌。
You should now submit your solutions.
您可以多次提交解决方案,我们将采取仅考虑最高分。

2. 单变量线性回归

在本练习的这一部分中,您将使用变量以预测餐车的利润。假设您是某公司的首席执行官餐厅专营权,并正在考虑不同城市开设新餐厅出口。该连锁店在各个城市已经有卡车,并且您有关于城市的利润和人口。
您想使用此数据来帮助您选择要扩展的城市
到下一个。
文件ex1data1.txt包含线性回归问题的数据集。第一列是城市人口,第二列是在那个城市,一辆食品卡车的利润。利润的负值表示失利。
已经设置了ex1.m脚本来为您加载此数据。

2.1 绘制数据

在开始任何任务之前,了解以下信息通常很有用通过可视化它。对于此数据集,您可以使用散点图来可视化数据,因为它只有两个要绘制的属性(利润和人口)。 (许多您在现实生活中会遇到的其他问题是多维的无法在二维绘图上绘制。)

在ex1.m中,数据集从数据文件加载到变量X中和y:

data = load('ex1data1.txt'); % read comma separated data
X = data(:, 1); y = data(:, 2);
m = length(y); % number of training examples

接下来,脚本调用plotData函数来创建散点图数据。您的工作是完成plotData.m绘制图;修改文件并填写以下代码:

function plotData(x, y)
%PLOTDATA Plots the data points x and y into a new figure 
%   PLOTDATA(x,y) plots the data points and gives the figure axes labels of
%   population and profit.

figure; % open a new figure window

% ====================== YOUR CODE HERE ======================
% Instructions: Plot the training data into a figure using the 
%               "figure" and "plot" commands. Set the axes labels using
%               the "xlabel" and "ylabel" commands. Assume the 
%               population and revenue data have been passed in
%               as the x and y arguments of this function.
%
% Hint: You can use the 'rx' option with plot to have the markers
%       appear as red crosses. Furthermore, you can make the
%       markers larger by using plot(..., 'rx', 'MarkerSize', 10);
plot(x,y,'rx','MarkerSize',10);
ylabel('Profit in $10,000s');
xlabel('Population of City in 10,000s');
% ============================================================

end

现在,当您继续运行ex1.m时,我们的最终结果应该像图1,带有相同的红色“ x”标记和轴标签。

要了解有关plot命令的更多信息,可以在Octave / MATLAB命令提示符或在线搜索绘图文件。 (要将标记更改为红色的“ x”,我们使用了“ rx”选项连同plot命令,即plot(…,[此处为您的选项],…,“RX”); )
在这里插入图片描述
Figure 1: Scatter plot of training data

2.2 梯度下降

在这一部分中,您使用梯度下降将使线性回归参数θ适合我们的数据集。

2.2.1 更新方程式

线性回归的目的是最小化代价函数。
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(θ) =\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2} J(θ)=2m1i=1m(hθ(x(i))y(i))2
假设hθ(x)由线性模型给出
h θ ( x ) = θ T x = θ 0 + θ 1 x 1 h_{\theta}(x)=\theta^{T}x=\theta_{0}+\theta_{1}x_{1} hθ(x)=θ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值