介绍:
在本练习中,您将实现逻辑回归,并将其应用于两个不同的数据集。在开始编程练习之前,我们强烈要求建议观看视频讲座并完成相关主题的问题。要开始练习,您需要下载起始代码并将其内容解压缩到要完成练习的目录。如果需要,请在开始本练习之前使用octave/matlab中的cd命令更改到此目录。您也可以在课程网站的“环境设置说明”中找到安装Octave/Matlab的说明。
本练习中包含的文件
ex2.m-octave/matlab脚本,指导您完成练习
ex2 reg.m-octave/matlab脚本,用于练习的后面部分
ex2data1.txt-练习前半部分的训练集
ex2data2.txt-练习后半部分的训练集
submit.m-将解决方案发送到我们服务器的提交脚本
map.Feature.m-多项式生成函数
plotDecisionBoundary.m -绘制分类器决策边界的函数
[*] plotData.m - Function to plot 2D classification data(用于绘制二维分类数据的函数)
[*] sigmoid.m - Sigmoid Function(逻辑函数S型函数)
[*] costFunction.m - Logistic Regression Cost Function(逻辑回归代价函数)
[*] predict.m - Logistic Regression Prediction Function(逻辑回归预测函数)
[*] costFunctionReg.m - Regularized Logistic Regression Cost(正则化逻辑回归代价函数)
* indicates files you will need to complete
在整个练习中,您将使用脚本ex2.m和ex2 reg.m。这些脚本已经建立了关于问题的数据集,并且调用你要写的的函数。你不需要修改它们中的任何一个。你只是
按照中的说明修改其他文件中的功能这项任务。
1逻辑回归
在练习的这一部分中,您将构建一个逻辑回归模型来预测学生是否被大学录取。假设你是一所大学的系主任,你想根据每个申请者在两次考试中的成绩来决定他们的入学机会。您有以前申请者的历史数据,可以用作逻辑回归的训练集,对于每个培训示例,你都有申请者在两次考试中的分数和录取决定。你的任务是建立一个分类模型,根据这两次考试的分数来估计申请者的录取概率。大纲和ex2.m中的框架代码将指导您完成这个练习。
2、正则逻辑回归
在练习的这一部分中,您将实现正则化逻辑回归,以预测来自制造工厂的微芯片是否通过质量保证(QA)。在质量保证期间,每个微芯片都要经过各种测试以确保它工作正常。假设你是工厂的产品经理,你有两个不同测试的微芯片测试结果。从这两个测试中,您想确定是否应该接受或拒绝微芯片。为了帮助您做出决定,您有一个关于过去芯片的测试结果的数据集,你可以从中建立一个逻辑回归模型。
你将使用另一个脚本,ex2_reg.m 有这个练习需要你完成的部分。
可选练习
在本部分练习中,您将尝试数据集的不同正则化参数,以了解正则化参数如何防止过拟合的。注意当你改变λ时决策边界的变化。用一个小的λ,你应该发现分类者几乎可以正确地得到每一个训练示例,但却画出了一个非常复杂的边界,从而过多地设置了数据(图5)。这不是一个好的决策边界:例如,它预测x=(-0.25,1.5)处的一个点被接受(y=1),考虑到训练集,这似乎是一个错误的决策。
对于较大的λ,您应该会看到一个图,它显示了一个更简单的决策边界,仍然可以很好地分离正反两方面。但是,如果将λ设置为过高的值,您将无法得到一个好的结果,并且决策边界也不会很好地遵循数据,从而导致数据设置不足(图6)。