【发布时间】:2017-08-16 05:09:26
【问题描述】:
在我应该如何逐步进行方面,我在实施逻辑回归方面遇到了一些困难。根据我到目前为止所做的,我正在通过以下方式实现它:
首先取
theta等于特征的数量并将其设为n*1零向量。现在使用这个theta来计算以下htheta = sigmoid(theta' * X');theta = theta - (alpha/m) * sum (htheta' - y)'*X现在使用第一步计算的
theta来计算成本函数J= 1/m *((sum(-y*log(htheta))) - (sum((1-y) * log(1 - htheta)))) + lambda/(2*m) * sum(theta).^2最后计算梯度
grad = (1/m) * sum ((sigmoid(X*theta) - y')*X);
因为我将theta 设为零。我在整个向量中得到相同的 J 值,这是正确的输出吗?
【问题讨论】:
-
您能否提供一个最低限度的工作示例,例如使用一些虚拟数据。你可以像这样产生它:
y=randi(2,[10,1])-1&X=[ones(10,1) randn([10,1])。据我所知:更新theta时,成本函数应该会发生变化。但是,不清楚为什么要计算两次梯度(即,一次在更新theta和最后一步)。 -
@zundertj 实际上这是我也不清楚的部分。如果你能告诉我首先计算哪一项以及为什么,那就行了。
标签: matlab machine-learning statistics logistic-regression