繁体   English   中英

Logistic回归成本函数

[英]Logistic Regression Cost Function

function [J, grad] = costFunction(theta, X, y)
data = load('ex2data1.txt');

y = data(:, 3);

theta = [1;1;2];
m = length(y); 
one = ones(m,1);
X1 = data(:, [1, 2]);
X =  [one X1];

J = 0;
grad = zeros(size(theta));

J= 1/m *((sum(-y*log(sigmoid(X*theta)))) - (sum(1-y * log(1 - sigmoid(X*theta)))));

for i = 1:m 
grad = (1/m) * sum (sigmoid(X*theta) - y')*X;
end

end

我想知道我是否正确实现了成本函数和梯度下降,但尽管如此,我还是得到了NaN答案,而theta(1)始终必须为0我在这里将其设为1。 我需要为grad进行多少次迭代,迭代次数应等于矩阵或其他长度?

function [J, grad] = costFunction(theta, X, y)

m = length(y);

J = 0;
grad = zeros(size(theta));

sig = 1./(1 + (exp(-(X * theta))));
J = ((-y' * log(sig)) - ((1 - y)' * log(1 - sig)))/m;
grad = ((sig - y)' * X)/m;

end

哪里

sig = 1./(1 +(exp(-(X * theta)))));

是逻辑回归假设的矩阵表示,定义为:

在此处输入图片说明

其中,函数g是S型函数。 乙状结肠功能定义为:

在此处输入图片说明

J =((-y'* log(sig))-((1-y)'* log(1-sig)))/ m;

是逻辑回归中成本函数的矩阵表示:

在此处输入图片说明

等级=((sig-y)'* X)/ m;

是成本梯度的矩阵表示,它是与θ长度相同的向量,其中第j个元素(对于j = 0,1,...,n)的定义如下:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM