title: How to limit the weights of gradient descent?
body: <p>Here is the code for calculating the weights. I want to limit the weights to a range, for example (-1, 1)How to do it? Write a class?</p>
  <pre><code>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('&gt;epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate, sum_error))
    return coef
  </code></pre>