机器学习编程作业ex2(matlab/octave实现)-吴恩达coursera

分成两部分,一是本节课程内容的简要回顾,二是作业步骤的推导
程序打包网盘地址提取码1111
(后续部分,需要填入的代码为深色框,已经提供的代码为浅色框。)

一、内容回顾

逻辑回归Logistic Regression(LR)常用于二分类模型,代价函数和梯度函数如下:
在这里插入图片描述
在这里插入图片描述
在求解代价函数最小值的theta解时,可以利用自定义函数fminuc求解。
正则化系数lambda是为了解决复杂参数过拟合的情况。

二、作业1-Logistic Regression逻辑回归

按照课程的要求,安装octave或者matlab软件。(这里part是根据主文件ex2中的分法来分的。)
实际意义:数据集有100位学生的两次考试成绩(存入X中),拟通过逻辑回归(二分类模型),估计每个学生的录取概率(录取表明输出y为1,反之输出y为0)。

2.1 Part 1: Plotting 绘图

ex2主函数只提供子函数入口及轴、图例设置的代码,如下:

% 提取数据
data = load(‘ex2data1.txt’);
X = data(:, [1, 2]); y = data(:, 3);
% 加载子函数plotData
plotData(X, y);
% 设置x、y轴
hold on;
% Labels and Legend
xlabel(‘Exam 1 score’)
ylabel(‘Exam 2 score’)
% 添加图例
legend(‘Admitted’, ‘Not admitted’)
hold off;

加载的结果 大小
向量X 100*2
向量y 100*1

本部分需要在plotData.m文件中填入的代码:

pos = find(y==1); neg = find(y==0);
plot(X(pos, 1),X(pos,2), 'k+', 'LineWidth', 2, 'markersize',7);
plot(X(neg, 1),X(neg,2), 'ko', 'MarkerFaceColor', 'y');

利用plotData函数,第一行先存入y=1、y=0的两类点位置。第二、三行进行绘图,k+代表黑色"+"号,默认填充黑色;ko代表黑色圆圈,只涉及边缘;MarkerFaceColor,y 表明用黄色对o进行填充。输出:
在这里插入图片描述

2.2 Part 2: Compute Cost and Gradient 计算代价和梯度

主函数ex2提供了代价函数接口,如下:

% 存入X的行/列数
[m, n] = size(X);
% 初始化X、theta
X = [ones(m, 1) X];
initial_theta = zeros(n + 1, 1);
% Compute and display initial cost and gradient
[cost, grad] = costFunction(initial_theta, X, y);
% Compute and display cost and gradient with non-zero theta
test_theta = [-24; 0.2; 0.2];
[cost, grad] = costFunction(test_theta, X, y);

本部分需要在computeCost.m填入代码

  • 代价函数
    与线性回归不同,逻辑回归的输出值为0和1,线性回归和逻辑回归的代价函数如下图所示:
    在这里插入图片描述
    将逻辑回归的分段函数整合成一个函数,即可得到以下结果:
    在这里插入图片描述
    这里假设函数为:
    在这里插入图片描述
    引入了sigmoid函数:在这里插入图片描述
  • 梯度函数
    对上式的J进行求导,由于sigmoid函数有σ‘=σ*(1-σ)的特点,过程如下: ∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ∂ ∂ θ j [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − 1 − y ( i ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] = 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) ∗ h θ ( x ( i ) ) ∗ ( 1 − h θ ( x ( i ) ) ) ∗ ∂ θ T
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值