class_docstr: Performs a non-linear transformation of the data before fitting the model
  and doing predictions which allows for doing non-linear regression.
  Parameters:
  -----------
  degree: int
      The degree of the polynomial that the independent variable X will be transformed to.
  n_iterations: float
      The number of training iterations the algorithm will tune the weights for.
  learning_rate: float
      The step length that will be used when updating the weights.
class_docstr_tok: ["Performs","a","non-linear","transformation","of","the","data","before","fitting","the","model","and","doing","predictions","which","allows","for","doing","non-linear","regression",".","Parameters",":","--","--","--","--","--","-","degree",":","int","The","degree","of","the","polynomial","that","the","independent","variable","X","will","be","transformed","to",".","n_iterations",":","float","The","number","of","training","iterations","the","algorithm","will","tune","the","weights","for",".","learning_rate",":","float","The","step","length","that","will","be","used","when","updating","the","weights","."]
code: def __init__(self, degree, n_iterations=3000, learning_rate=0.001):
      self.degree = degree
      # No regularization
      self.regularization = lambda x: 0
      self.regularization.grad = lambda x: 0
      super(PolynomialRegression, self).__init__(
          n_iterations=n_iterations, learning_rate=learning_rate
      )
  
imports: from __future__ import print_function, division
  import numpy
  import math
  from mlfromscratch.utils import normalize, polynomial_features
label_desc: Use image node_id 1 to create a new PolynomialRegression object from inherited base classes: Regression with example: obj = PolynomialRegression(degree, n_iterations, learning_rate)