CS229作业之过拟合
一、使用循环:
1.1原始版逻辑回归:
function g = sigmoid(z)
g = zeros(size(z));
g = ./ ( + exp(-z));
end
function [J, grad] = costFunction(theta, X, y) % Initialize some useful values
m = length(y); % number of training examples J = ;
grad = zeros(size(theta)); n = size(theta);
gradtemp = ; %compute costfunction
for i = :m
temp1 = y(i) * log(sigmoid(X(i,:) * theta)) + ( - y(i)) * log( - sigmoid(X(i,:) * theta));
J = J + temp1;
endfor J = -(J / m); %compute grade
for j = :n
for i = :m
temp2 = (sigmoid(X(i,:) * theta) - y(i)) * X(i,j);
gradtemp = gradtemp + temp2;
endfor
gradtemp = gradtemp / m;
grad(j) = gradtemp;
gradtemp = ;
endfor end
function p = predict(theta, X) m = size(X, ); % Number of training examples p = zeros(m, ); for i =:m
h = sigmoid(X(i,:) * theta);
if h >= 0.5
y = ;
else
y = ;
endif
p(i) = y;
endfor end
1.2正则化版逻辑回归:
function [J, grad] = costFunctionReg(theta, X, y, lambda) % Initialize some useful values
m = length(y); % number of training examples J = ;
grad = zeros(size(theta)); n = length(theta)
temp1 = ;
temp2 = ;
temp3 = ;
result1 = ;
result2 = ;
%compute costfunction
for i = :m
h = sigmoid(X(i,:) * theta)
temp1 = y(i) * log(h) + ( - y(i)) * log(-h);
result1 = result1 + temp1;
endfor
for j = :n
temp2 = theta(j) * theta(j);
result2 = result2 + temp2;
endfor J = (- / m) * result1 + lambda / ( * m) * result2; temp3 =
temp4 =
result3 =
for i = :m
h = (sigmoid(X(i,:) * theta))
temp3 = (h - y(i)) * X(i,);
result3 = result3 + temp3;
endfor
grad() = ( / m) * result3 %compute grade
for j = :n
result4 = ;
for i = :m
h = (sigmoid(X(i,:) * theta))
temp4 = (h - y(i)) * X(i,j);
result4 = result4 + temp4;
endfor
grad(j) = ( / m) * result4 + (lambda / m) * theta(j)
endfor end
二、矩阵向量方式整体运算:
2.1原始版逻辑回归:
function g = sigmoid(z) g = zeros(size(z)); g = ./ ( + exp(-z)); end
function [J, grad] = costFunction(theta, X, y)
% Initialize some useful values
m = length(y); % number of training examples J = ;
grad = zeros(size(theta)); h = sigmoid(X * theta); J = sum(- y .* log(h) - ( - y) .* log( - h)) / m; grad = (/m * sum((h - y).* X))'; end
function p = predict(theta, X) m = size(X, ); % Number of training examples p = zeros(m, ); h = sigmoid(X * theta); p(find(h >= 0.5)) = ; end
2.2正则化版逻辑回归:
function [J, grad] = costFunctionReg(theta, X, y, lambda) % Initialize some useful values
m = length(y); % number of training examples J = ;
grad = zeros(size(theta)); n = size(theta,); h = sigmoid(X * theta); J = sum(- y .* log(h) - ( - y) .* log( - h)) / m + lambda / ( * m) * sum(theta(:n) .^ ); grad = (/m * sum((h - y).* X))'; grad(:n) = grad(:n) + lambda / m * theta(:n); end
CS229作业之过拟合的更多相关文章
- Coursera公开课-Machine_learing:编程作业5
Regularized Linear Regression and Bias/Variance 大多数时候,我们使用机器学习方法得到的结果都不是特别理想,常见 欠拟合 和 过拟合 问题.通过一些变量画 ...
- CS229 5.用正则化(Regularization)来解决过拟合
1 过拟合 过拟合就是训练模型的过程中,模型过度拟合训练数据,而不能很好的泛化到测试数据集上.出现over-fitting的原因是多方面的: 1) 训练数据过少,数据量与数据噪声是成反比的,少量数据导 ...
- cousera 吴恩达 深度学习 第一课 第二周 作业 过拟合的表现
上图是课上的编程作业运行10000次迭代后,输出每一百次迭代 训练准确度和测试准确度的走势图,可以看到在600代左右测试准确度为最大的,74%左右, 然后掉到70%左右,再掉到68%左右,然后升到70 ...
- CS229 3.用Normal Equation拟合Liner Regression模型
继续考虑Liner Regression的问题,把它写成如下的矩阵形式,然后即可得到θ的Normal Equation. Normal Equation: θ=(XTX)-1XTy 当X可逆时,(XT ...
- 机器学习作业(四)神经网络参数的拟合——Python(numpy)实现
题目下载[传送门] 题目简述:识别图片中的数字,训练该模型,求参数θ. 出现了一个问题:虽然训练的模型能够有很好的预测准确率,但是使用minimize函数时候始终无法成功,无论设计的迭代次数有多大,如 ...
- 机器学习作业(四)神经网络参数的拟合——Matlab实现
题目下载[传送门] 题目简述:识别图片中的数字,训练该模型,求参数θ. 第1步:读取数据文件: %% Setup the parameters you will use for this exerci ...
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结
Exercise 1:Linear Regression---实现一个线性回归 关于如何实现一个线性回归,请参考:http://www.cnblogs.com/hapjin/p/6079012.htm ...
- stanford coursera 机器学习编程作业 exercise 5(正则化线性回归及偏差和方差)
本文根据水库中蓄水标线(water level) 使用正则化的线性回归模型预 水流量(water flowing out of dam),然后 debug 学习算法 以及 讨论偏差和方差对 该线性回归 ...
- Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)
#课程设计--博客作业教学数据分析系统(201521123084 李嘉廉) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 數據分析 Kmeans聚類算法實現 多元綫性 ...
随机推荐
- CocoaPods介绍与使用(转)
一.介绍 (1) CocoaPods是一个用来帮助我们管理第三方依赖库的工具.它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程 ...
- CodePush自定义更新弹框及下载进度条
CodePush 热更新之自定义更新弹框及下载进度 先来几张弹框效果图 非强制更新场景 image 强制更新场景 image 更新包下载进度效果 image 核心代码 这里的热更新Modal框,是封装 ...
- 没有美工一样可以获取设计各种各样的UI图
没有美工一样可以获取设计各种各样的UI图 http://www.iconfont.cn
- POJ 1066--Treasure Hunt(判断线段相交)
Treasure Hunt Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7857 Accepted: 3247 Des ...
- python脚本批量杀死redis链接
#!/usr/bin/python #coding:utf8 import sys import commands,time,re ##自定义redis链接类 from redismodel impo ...
- 【原创】展开二层嵌套列表(或pd.Series)的几种方法效率对比
转载请注明出处:https://www.cnblogs.com/oceanicstar/p/10248763.html ★二层嵌套列表(或以列表为元素的pd.Series)有以下几种展开方式 (1)列 ...
- 快速玩转linux(2)
ssh是什么 SSH:secure shell 安全外壳协议 建立在应用层基础上的安全协议 可靠, 专为远程登录会话和其他网络服务提供安全性的协议. mark 客户端服务端都基本支持全平台 服务器 ...
- SI - 系统 - 操作系统简述 (Operating System)
Unix 操作系统:System V.BSD Microsoft Windows Apple Mac OS Linux FreeBSD 安装 https://jingyan.baidu.com/art ...
- jQuery做一个小小的移动图片的位置
样式图点击按钮移动: jQuery代码如下: $(function () { //上 $("#btnUp").click(function () { var ...
- 修改二维码生成插件jquery.qrcode.js支持加入自定义LOGO
1,将jquery.qrcode.min.js和jquery添加到您的网页中 <script src="jquery.min.js"></script> & ...