Matern#

class skfda.misc.covariances.Matern(*, variance=1, length_scale=1, nu=1.5)[source]#

Matérn covariance function.

The covariance function is

\[K(x, x') = \sigma^2 \frac{2^{1-\nu}}{\Gamma(\nu)} \left( \frac{\sqrt{2\nu}|x - x'|}{l} \right)^{\nu} K_{\nu}\left( \frac{\sqrt{2\nu}|x - x'|}{l} \right)\]

where \(\sigma^2\) is the variance, \(l\) is the length scale and \(\nu\) controls the smoothness of the related Gaussian process. The trajectories of a Gaussian process with Matérn covariance is \(\lceil \nu \rceil - 1\) times differentiable.

Heatmap plot of the covariance function:

from skfda.misc.covariances import Matern
import matplotlib.pyplot as plt

Matern().heatmap(limits=(0, 1))
plt.show()
../../../_images/skfda.misc.covariances.Matern_0_0.png

Example of Gaussian process trajectories using this covariance:

from skfda.misc.covariances import Matern
from skfda.datasets import make_gaussian_process
import matplotlib.pyplot as plt

gp = make_gaussian_process(
        n_samples=10, cov=Matern(), random_state=0)
gp.plot()
plt.show()
../../../_images/skfda.misc.covariances.Matern_1_0.png

Default representation in a Jupyter notebook:

from skfda.misc.covariances import Matern

Matern()
\[K(x, x') = \sigma^2 \frac{2^{1-\nu}}{\Gamma(\nu)}\left( \frac{\sqrt{2\nu}|x - x'|}{l} \right)^{\nu}K_{\nu}\left( \frac{\sqrt{2\nu}|x - x'|}{l} \right) \\\text{where:}\begin{aligned}\qquad\sigma^2 &= 1 \\l &= 1 \\\nu &= 1.5 \\\end{aligned}\]
2024-02-26T11:09:11.871981 image/svg+xml Matplotlib v3.8.3, https://matplotlib.org/
2024-02-26T11:09:11.664774 image/svg+xml Matplotlib v3.8.3, https://matplotlib.org/

Methods

heatmap([limits])

Return a heatmap plot of the covariance function.

to_sklearn()

Convert it to a sklearn kernel, if there is one.

Parameters:
heatmap(limits=(-1, 1))[source]#

Return a heatmap plot of the covariance function.

Parameters:

limits (Tuple[float, float]) –

Return type:

Figure

to_sklearn()[source]#

Convert it to a sklearn kernel, if there is one.

Return type:

Kernel