• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

matlab(3) Logistic Regression: 求cost 和gradient \ 求sigmoid的值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

sigmoid.m文件

function g = sigmoid(z)
%SIGMOID Compute sigmoid functoon
% J = SIGMOID(z) computes the sigmoid of z.

g = zeros(size(z));  初始化g ,z可以是一个数,一个向量或者一个矩阵

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of each value of z (z can be a matrix, vector or scalar)
Ones = ones(size(z));
g = Ones./(Ones + exp((-1).*z));  计算,g(z)的值域在[0,1]之间,符合概率的分布.

                                                 当z=0时,g=0.5; 当z<0时,g<0.5;当z>0时,g>0.5; 

                                                 当z->-∞时,g->0; 当z->+∞时,g->1

                                                 z可以是一个数,一个向量或者是一个矩阵

% =============================================================

end

 

costFunction.m

function [J, grad] = costFunction(theta, X, y)
%COSTFUNCTION Compute cost and gradient for logistic regression
% J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the
% parameter for 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));  %grad的维数与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
%
% Note: grad should have the same dimensions as theta
%

                                                                                                           J(θ)的表达式      

                                                                                                              grad的表达式

J = 1/m*(-1*y'*log(sigmoid(X*theta)) - (ones(1,m)-y')*log(ones(m,1)-sigmoid(X*theta)));    %logM是对矩阵的每个元素都是求log, exp(M)同样是表示对矩阵的每                                                                                                                                        个元素求e的底

                                                                                                                                      调用的函数参见上述函数sigmoid.m

grad = 1/m * (X' * (sigmoid(X*theta) - y));,

% =============================================================

end

 

 

%% ============ Part 2: Compute Cost and Gradient ============
% In this part of the exercise, you will implement the cost and gradient
% for logistic regression. You neeed to complete the code in
% costFunction.m

% Setup the data matrix appropriately, and add ones for the intercept term
[m, n] = size(X);  %求x矩阵的维数

% Add intercept term to x and X_test
X = [ones(m, 1) X];  %X矩阵左侧加一列1,用来匹配常数量

% Initialize fitting parameters
initial_theta = zeros(n + 1, 1);  

% Compute and display initial cost and gradient
[cost, grad] = costFunction(initial_theta, X, y);   %参见上述文件costFunction.m

fprintf('Cost at initial theta (zeros): %f\n', cost);
fprintf('Gradient at initial theta (zeros): \n');
fprintf(' %f \n', grad);

fprintf('\nProgram paused. Press enter to continue.\n');
pause;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
对tmemorystream的一些改进_delphi教程发布时间:2022-07-18
下一篇:
Delphi中TList类应用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap