Transform
s are designed to change input data before passing it on to a kernel object.
It can be as standard as IdentityTransform
returning the same input, or
multiplying the data by a scalar with ScaleTransform
or by a vector with
ARDTransform
.
There is a more general FunctionTransform
that uses a function and applies it to
each input.
You can also create a pipeline of Transform
s via ChainTransform
, e.g.,
LowRankTransform(rand(10, 5)) ∘ ScaleTransform(2.0)
A transformation t
can be applied to a single input x
with t(x)
and to multiple inputs
xs
with map(t, xs)
.
Kernels can be coupled with input transformations with ∘
or its alias compose
. It falls
back to creating a TransformedKernel
but allows more
optimized implementations for specific kernels and transformations.
Transform
IdentityTransform
ScaleTransform
ARDTransform
ARDTransform(::Real, ::Integer)
LinearTransform
FunctionTransform
SelectTransform
ChainTransform
PeriodicTransform
with_lengthscale
median_heuristic_transform