Ниже приведен код для нахождения регуляризованной функции стоимости и градиента (производной функции стоимости по тета). Я понимаю математику, стоящую за этим, и то, что мы пытаемся здесь сделать.
def costFunctionReg(theta, X, y, lambda_):
h = sigmoid(X.dot(theta.T))
temp = theta
temp[0] = 0
J = (1 / m) * np.sum(-y.dot(np.log(h)) - (1 - y).dot(np.log(1 - h))) + (lambda_ / (2 * m)) * np.sum(np.square(temp))
grad = (1 / m) * (h - y).dot(X)
grad = grad + (lambda_ / m) * temp
return J, grad
Здесь
theta
: array_like Logisti c параметры регрессии. Вектор с формой (n, )
X
: array_like Набор данных с формой (m, n)
. y
: array_like Метки данных. Вектор с формой (m, )
.
и
lambda_
: float Параметр регуляризации.
Но я не понимаю почему они сделали temp[0] = 0
?