class_docstr: Rational Quadratic kernel,
  
  k(r) = σ² (1 + r² / 2αℓ²)^(-α)
  
  σ² : variance
  ℓ  : lengthscales
  α  : alpha, determines relative weighting of small-scale and large-scale fluctuations
  
  For α → ∞, the RQ kernel becomes equivalent to the squared exponential.
class_docstr_tok: ["Rational","Quadratic","kernel",",","k","(","r",")","=","\u03c3\u00b2","(","1","+","r\u00b2","\/","2\u03b1\u2113\u00b2",")","^","(","-\u03b1",")","\u03c3\u00b2",":","variance","\u2113",":","lengthscales","\u03b1",":","alpha",",","determines","relative","weighting","of","small-scale","and","large-scale","fluctuations","For","\u03b1","\u2192","\u221e",",","the","RQ","kernel","becomes","equivalent","to","the","squared","exponential","."]
code: def __init__(
      self,
      variance: TensorType = 1.0,
      lengthscales: TensorType = 1.0,
      alpha: TensorType = 1.0,
      active_dims: Optional[ActiveDims] = None,
  ) -> None:
      super().__init__(
          variance=variance,
          lengthscales=lengthscales,
          active_dims=active_dims,
      )
      self.alpha = Parameter(alpha, transform=positive())
  
imports: from typing import Any, Optional
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..base import Parameter, TensorType
  from ..utilities import positive
  from ..utilities.ops import difference_matrix, square_distance
  from .base import ActiveDims, Kernel
label_desc: Use image node_id 1 to create a new RationalQuadratic object from inherited base classes: IsotropicStationary with example: obj = RationalQuadratic(variance, lengthscales, alpha, active_dims)