ex2——ex_reg.m

在ex2的基础上多写一个costFunctionReg.m就可以运行ex_reg.m
里面的reg指正则化(regularization),是用来处理过拟合(overfitting)情况的

其实就是在代价函数后再多加一个(λ/2m)∑θ²
但是梯度函数里面grad(1)不加λ/m*θ(1)

costFunctionReg.m

function [J, grad] = costFunctionReg(theta, X, y, lambda)
%COSTFUNCTIONREG Compute cost and gradient for logistic regression with regularization
%   J = COSTFUNCTIONREG(theta, X, y, lambda) computes the cost of using
%   theta as the parameter for regularized logistic regression and the
%   gradient of the cost w.r.t. to the parameters. 

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly 
J = 0;
grad = zeros(size(theta));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta.
%               You should set J to the cost.
%               Compute the partial derivatives and set grad to the partial
%               derivatives of the cost w.r.t. each parameter in theta
h=sigmoid(X*theta);
J=(-y'*log(h)-(1-y)'*log(1-h))/m+lambda*(sum(theta.*theta)-theta(1)^2)/(2*m);
grad(1)=(X(:,1))'*(h-y)/m;
n=size(theta);
for i = 2 : n
    grad(i)=((X(:,i))'*(h-y))/m+lambda*theta(i)/m;
end
% =============================================================

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值