1

データを分類するためのコードを書こうとしています。シグモイド関数を実装しようとしましたが、その関数を使用してコストを計算しようとしました.エラーが発生し続け、シグモイド関数が原因であると感じています.シグモイド関数がベクトルを返すようにしたいと思います.しかしスカラーを返し続けます。

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

% You need to return the following variables correctly 

g=zeros(size(z));
m=ones(size(z));
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of each value of z (z can be a matrix,
%               vector or scalar).


g=1/(m+exp(-z));

これは私のコスト関数です:

m = length(y); % number of training examples

% You need to return the following variables correctly 
grad=(1/m)*((X*(sigmoid(X*theta)-y)));//this is the derivative in gradient descent
J=(1/m)*(-(transpose(y)*log(sigmoid((X*theta))))-(transpose(1-y)*log(sigmoid((X*theta)))));//this is the cost function

X の次元は 100,4 です。theta は 4,1、y は 100,1 です。

ありがとうございました。

エラー:

Program paused. Press enter to continue.

 sigmoid answer: 0.500000Error using  - 
Matrix dimensions must agree.

Error in costFunction (line 11)
grad=(1/m)*((X*(sigmoid(X*theta)-y)));

Error in ex2 (line 69)
[cost, grad] = costFunction(initial_theta, X, y);
4

1 に答える 1

2

メソッドのシグモイドに置き換えg=1/(m+exp(-z));てくださいg=1./(m+exp(-z));

z = [2,3,4;5,6,7] ;
%SIGMOID Compute sigmoid functoon
%   J = SIGMOID(z) computes the sigmoid of z.

% You need to return the following variables correctly 

g=zeros(size(z));
m=ones(size(z));
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of each value of z (z can be a matrix,
%               vector or scalar).


g=1./(m+exp(-z));
于 2013-10-31T15:12:03.793 に答える