function KDE(params) {
    Transform.call(this, null, params);
  }
Compute kernel density estimates (KDE) for one or more data groups.
@constructor
@param {object} params - The parameters for this operator.
@param {Array<function(object): *>} [params.groupby] - An array of accessors
  to groupby.
@param {function(object): *} params.field - An accessor for the data field
  to estimate.
@param {number} [params.bandwidth=0] - The KDE kernel bandwidth.
  If zero or unspecified, the bandwidth is automatically determined.
@param {boolean} [params.counts=false] - A boolean flag indicating if the
  output values should be probability estimates (false, default) or
  smoothed counts (true).
@param {string} [params.cumulative=false] - A boolean flag indicating if a
  density (false) or cumulative distribution (true) should be generated.
@param {Array<number>} [params.extent] - The domain extent over which to
  plot the density. If unspecified, the [min, max] data extent is used.
@param {string} [params.resolve='independent'] - Indicates how parameters for
  multiple densities should be resolved. If "independent" (the default), each
  density may have its own domain extent and dynamic number of curve sample
  steps. If "shared", the KDE transform will ensure that all densities are
  defined over a shared domain and curve steps, enabling stacking.
@param {number} [params.minsteps=25] - The minimum number of curve samples
  for plotting the density.
@param {number} [params.maxsteps=200] - The maximum number of curve samples
  for plotting the density.
@param {number} [params.steps] - The exact number of curve samples for
  plotting the density. If specified, overrides both minsteps and maxsteps
  to set an exact number of uniform samples. Useful in conjunction with
  a fixed extent to ensure consistent sample points for stacked densities.