我遇到过两个类似的八度语句,其中一个语句没有提供正确的结果。该代码用于计算正则化Logistic回归的成本函数。
J=(1/m)*sum(-y'*log(h)-(1-y')*log(1-h)) + (lambda/2*m)*sum(theta(2:end).^2;
%Bad one
J = (sum(-y' * log(h) - (1 - y')*log(1 - h)) / m) + lambda *sum(theta(2:end).^2)/ (2*m);
%good one
请有人告诉我这两者的区别。
答案 0 :(得分:2)
在第一个中你有lambda/2*m
。这是(lambda/2)*m
。在第二个你有lambda/(2*m)
。因此,在第一个表达式中,您乘以m
,在第二个表达式中除以m
。另请注意,第一个表达式在末尾错过了一个括号。