【发布时间】:2022-01-02 22:15:39
【问题描述】:
这是计算权重的代码。我想将权重限制在一个范围内,例如 (-1, 1) 怎么做?写一堂课?
def coefficients_sgd(train, l_rate, n_epoch):
coef = [0.0 for i in range(len(train[0]))]
for epoch in range(n_epoch):
sum_error = 0
for row in train:
yhat = predict(row, coef)
error = yhat - row[-1]
sum_error += error**2
coef[0] = coef[0] - l_rate * error
for i in range(len(row)-1):
coef[i + 1] = coef[i + 1] - l_rate * error * row[i]
print('>epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate, sum_error))
return coef
【问题讨论】:
-
如果
w是一个权重,用max(min(w, 1), -1)处理它
标签: python machine-learning gradient-descent