您的位置:首页 > 编程语言

Coursera-吴恩达-机器学习-(编程练习2)Logistic Regression(对应第3周课程)

2018-01-14 15:42 597 查看
此系列为 Coursera 网站Andrew Ng机器学习课程个人学习笔记(仅供参考)

课程网址:https://www.coursera.org/learn/machine-learning

exercise 2 —— Logistic Regression

目录

exercise 2 Logistic Regression

目录

作业介绍

1-1 逻辑回归练习
1-1-1 可视化数据 visualizing the data

1-1-2 实现sigmoid costgradient

1-1-3 Learning parameters using fminunc

1-1-4 评估逻辑回归

1-2正则化逻辑回归 Regularized logistic regression
1-2-1 可视化数据

1-2-2 特征映射 Feature mapping

1-2-3 Cost function and gradient

1-2-4 画出决策边界Plotting the decision boundary

作业介绍

在此下载第2次编程练习

在此下载Coursera-吴恩达-机器学习-全部编程练习答案

各个文件的作用:

ex2.m - Octave / MATLAB脚本,指导您完成练习

ex2 reg.m - 练习后面部分的Octave / MATLAB脚本

ex2data1.txt - 练习的前半部分的训练集

ex2data2.txt - 练习后半部分的训练集

submit.m - 提交您的解决方案到我们的服务器的提交脚本

mapFeature.m - 生成多项式特征的函数

plotDecisionBoundary.m - 绘制分类器决策边界的函数

在整个练习中,您将使用脚本ex2.m和ex2 reg.m. 这些脚本为问题设置数据集,并调用您将要编写的函数。 你不需要修改其中的任何一个。 您只需按照本作业中的说明修改其他文件中的功能。

1-1 逻辑回归练习

在这部分的练习中,你将建立一个逻辑回归模型来预测一个学生是否被录取进大学。

假设你是大学部门的管理者,你想根据两次考试的结果来确定每个申请者的录取机会。 您可以从以前的申请人获得历史数据,您可以将其用作逻辑回归的训练集。 对于每个培训的例子,你有两个考试的申请者的分数和录取决定。

你的任务是建立一个分类模型,根据这两个考试的分数来估计申请者的录取概率。

这个大纲和ex2.m中的框架代码将指导你完成这个练习。

1-1-1 可视化数据 visualizing the data

在开始实施任何学习算法之前,如果可能的话,最好将数据可视化。 在ex2.m的第一部分,代码将加载数据并通过调用函数plotData将其显示在二维图上。

您现在将在plotData中完成代码,使其显示如图1所示的图形,其中轴是两个考试分数,正面和负面的示例显示为不同的标记。



1-1-2 实现sigmoid ,cost,gradient

1-1-3 Learning parameters using fminunc

Octave / MATLAB的fminunc是一个优化求解器,内置函数

1-1-4 评估逻辑回归

学习完参数后,您可以使用该模型来预测某个特定的学生是否被录取。 对于考试1分数为45分和考试2分数为85分的学生,您应该期望看到0.776的录取概率。

1-2正则化逻辑回归 Regularized logistic regression

在这部分的练习中,您将执行正则化的逻辑回归来预测制造工厂的微芯片是否通过了质量保证(QA)。 在QA期间,每个微芯片都经过各种测试以确保其正常工作。

假设你是工厂的产品经理,你在两个不同的测试中有一些微芯片的测试结果。 从这两个测试,你想确定是否应该接受或拒绝芯片。 为了帮助您做出决定,您可以在过去的微芯片上获得测试结果的数据集,从中可以建立逻辑回归模型。

您将使用另一个脚本ex2 reg.m来完成这部分练习。

1-2-1 可视化数据

图显示我们的数据集不能通过绘图的直线分成正面和负面的例子。 因此,logistic回归的直接应用在这个数据集上表现不好,因为逻辑回归只能找到一个线性的决策边界。



1-2-2 特征映射 Feature mapping

更好地拟合数据的一种方法是从每个数据点创建更多的特征。 在提供的函数mapFeature.m中,我们将把特征映射到x 1和x 2的所有多项式到6次幂。

作为这种映射的结果,我们的两个特征(两个QA测试中的分数)的矢量已被变换成6维矢量。 在这个高维特征向量上训练的逻辑回归分类器将具有更复杂的决策边界,并且在我们的二维图中绘制时将呈现非线性。

虽然特征映射允许我们构建更具表现力的分类器,但它也更易于过度拟合。 在接下来的练习中,您将实施规则化的逻辑回归以适应数据,同时也要了解正规化如何帮助解决过度拟合问题。

function out = mapFeature(X1, X2)
% MAPFEATURE Feature mapping function to polynomial features
%
%   MAPFEATURE(X1, X2) maps the two input features
%   to quadratic features used in the regularization exercise.
%
%   Returns a new feature array with more features, comprising of
%   X1, X2, X1.^2, X2.^2, X1*X2, X1*X2.^2, etc..
%
%   Inputs X1, X2 must be the same size
%

degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
for j = 0:i
out(:, end+1) = (X1.^(i-j)).*(X2.^j);
end
end

end


1-2-3 Cost function and gradient

现在您将执行代码来计算正则化逻辑回归的成本函数和梯度。

就是在原来的代价函数的基础上加入正则项。

1-2-4 画出决策边界Plotting the decision boundary

为了帮助您可视化由此分类器学习的模型,我们提供了plotDecisionBoundary.m函数,绘制分隔正例和负例的(非线性)决策边界。 在plotDecisionBoundary.m中,我们通过在均匀间隔的网格上计算分类器的预测来绘制非线性决策边界,然后画出预测从y = 0变化到y = 1的等高线图。

精确度89%左右

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐