gpt4 book ai didi

matlab - 逻辑回归成本函数

转载 作者:行者123 更新时间:2023-11-30 08:46:19 25 4
gpt4 key购买 nike

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))));

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

enter image description here

其中函数 g 是 sigmoid 函数。 sigmoid 函数定义为:

enter image description here

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

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

enter image description here

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

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

enter image description here

关于matlab - 逻辑回归成本函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45653712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com