Back to models
Forecaster

PyKANForecaster

PyKANForecaster uses Kolmogorov Arnold Network [1] to forecast time series data.

This forecaster uses the pykan library to create a KAN model to forecast time series data. The model is trained on the training data and then used to forecast the future values of the time series. Note This forecaster is experimental and the used library for implementing the KANs may be exchanged in the future to a more stable and efficient library.

Quickstart

python
from sktime.forecasting.pykan import PyKANForecaster

estimator = PyKANForecaster(hidden_layers=(1, 1), input_layer_size=2, grids=None, model_params=None, fit_params=None, val_size=0.5, device='cpu')

Tags

Capabilities

  • Categorical features
  • Exogenous variables
  • In-sample predictions: Not supported
  • Prediction intervals: Not supported
  • In-sample prediction intervals: Not supported
  • Missing values: Not supported
  • Multivariate: Not supported

Properties

Needs forecast horizon in fitrequires-fh-in-fit
Yes
X and y need the same indexX-y-must-have-same-index
Yes

Parameters(8)

hidden_layerstuple, optional (default=(1, 1))
The number of hidden layers in the network.
input_layer_sizeint, optional (default=2)
The size of the input layer.
kint, optional (default=3)
The number of nearest neighbors to consider.
gridsnp.array, optional (default=np.array([2, 3]))
The grid sizes to use in the model.
model_paramsdict, optional (default={“k”: 2})
The parameters to pass to the model. See pykan documentation for more details.
fit_paramsdict, optional (default={“steps”: 1})
The parameters to pass to the fit method. See pykan documentation for more details.
val_sizefloat, optional (default=0.5)
The size of the validation set to use in the training.
devicestr, optional (default=”cpu”)
The device to use for training the model.

Examples

>>> from sktime.forecasting.pykan import PyKANForecaster
>>> forecaster = PyKANForecaster ()

References

[1]

Liu, Ziming, et al. “KAN: Kolmogorov-Arnold Networks.” arXiv preprint arXiv:2404.19756 (2024).