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

分成两部分,一是本节课程内容的简要回顾,二是作业步骤的推导
程序打包网盘地址提取码1111

一、(Week 4)内容回顾

神经网络可以通过修改隐藏层数量和隐藏单元数量来控制假设函数的复杂程度。

需要编辑以下的红色文件。(后续部分,需要填入的代码为深色框,已经提供的代码为浅色框。)

文件 内容
ex3.m 逻辑回归主程序
ex3_nn 神经网络主程序
ex3data1.mat 手写数字数据集
ex3weights.mat 神经网络初始参数
submit.m 提交文件
displayData.m - 可视化数据集
fmincg.m 优化函数
sigmoid.m sigmoid函数
lrCostFunction.m 逻辑回归的代价、梯度函数
oneVsAll.m 训练逻辑回归的多分类器
predictOneVsAll.m 逻辑回归多分类器的准确度计算
predict.m 神经网络模型的准确度计算

二、作业1-Multi-class Classification 多元分类

这部分是利用逻辑回归和神经网络来识别数字。

2.1 Part 1: Plotting 绘图

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

input_layer_size = 400;
num_labels = 10; %数字的0~9标记,
% 加载训练集数据
load(‘ex3data1.mat’); % training data stored in arrays X, y
m = size(X, 1);
% 展示随机的10*10共100个数字的图像
rand_indices = randperm(m);
sel = X(rand_indices(1:100), 😃;
displayData(sel);

加载的结果 含义
X 5000*400,某一行代表某个0~9数字对应的400个灰度值
y 5000*1,每一行对应的手写体数字

2.2a Part 2a: Vectorize Logistic Regression 向量化的逻辑回归

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

theta_t = [-2; -1; 1; 2];
X_t = [ones(5,1) reshape(1:15,5,3)/10]; %reshape为提取矩阵的某些行列
y_t = ([1;0;1;0;1] >= 0.5); %>=为判断指令,输出 1 0 1 0 1
lambda_t = 3;
[J grad] = lrCostFunction(theta_t, X_t, y_t, lambda_t);

引用ex2编程作业中的逻辑回归,其正则化的代价函数和梯度函数如下:
在这里插入图片描述
在这里插入图片描述将两个函数进行向量化,需要在lrCostFunction.m文件中填入代码

theta_1=[0;theta(2:end
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值