| Type: | Package |
| Title: | Fast Extrapolation of Time Features using K-Nearest Neighbors |
| Version: | 2.0.0 |
| Description: | Fast extrapolation of univariate and multivariate time features using K-Nearest Neighbors. Version 2.0 adds approximate nearest-neighbor search, optional GPU acceleration, probabilistic forecast distributions, conformal prediction intervals, and multi-scale sequence representations. The compact set of hyper-parameters is tuned via grid or random search. |
| License: | GPL-3 |
| Encoding: | UTF-8 |
| LazyData: | true |
| RoxygenNote: | 7.3.3 |
| Depends: | R (≥ 4.1) |
| Suggests: | testthat (≥ 3.0.0) |
| Config/testthat/edition: | 3 |
| URL: | https://rpubs.com/giancarlo_vercellino/jenga |
| NeedsCompilation: | no |
| Packaged: | 2026-07-17 09:06:28 UTC; gianc |
| Author: | Giancarlo Vercellino [aut, cre] |
| Maintainer: | Giancarlo Vercellino <giancarlo.vercellino@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-07-17 09:30:02 UTC |
jenga: automatic projections of time features using modern KNN
Description
Automatic projections of time features using approximate nearest neighbors, optional GPU acceleration, probabilistic forecasts, conformal intervals, and multiscale sequence representations.
Usage
jenga(
df,
seq_len = NULL,
smoother = FALSE,
k = NULL,
method = NULL,
kernel = NULL,
ci = 0.8,
n_windows = 10,
mode = NULL,
n_sample = 30,
search = "random",
dates = NULL,
error_scale = "naive",
error_benchmark = "naive",
seed = 42,
ann = "auto",
gpu = "auto",
probabilistic = TRUE,
conformal = TRUE,
multiscale = c(1, 2, 4),
n_draws = 1000
)
Arguments
df |
A data frame with time features on columns (numerical or categorical features, but not both). |
seq_len |
Positive integer. Time-step number of the projected sequence |
smoother |
Logical. Perform optimal smoothing using standard loess (only for numerical features). Default: FALSE |
k |
Positive integer. Number of neighbors to consider when applying kernel average. Min number is 3. Default: NULL (automatic selection). |
method |
String. Distance method for calculating neighbors. Possible options are: "euclidean", "manhattan", "minkowski", "chebyshev", "canberra", "clark", "sorensen", "lorentzian", "cosine", "correlation", and "hamming". Default: NULL (automatic selection). |
kernel |
String. Kernel used to calculate neighbor weights. Possible options are: "norm", "cauchy", "logis", "unif", "t", "laplace", "epanechnikov", "triangular", "biweight", "triweight", and "cosine". Default: NULL (automatic selection). |
ci |
Confidence interval. Default: 0.8 |
n_windows |
Positive integer. Number of validation tests to measure/sample error. Default: 10. |
mode |
String. Sequencing method: deterministic ("segmented"), or non-deterministic ("sampled"). Default: NULL (automatic selection). |
n_sample |
Positive integer. Number of samples for grid or random search. Default: 30. |
search |
String. Two option available: "grid", "random". Default: "random". |
dates |
Date. Vector with dates for time features. |
error_scale |
String. Scale for the scaled error metrics. Two options: "naive" (average of naive one-step absolute error for the historical series) or "deviation" (standard error of the historical series). Default: "naive". |
error_benchmark |
String. Benchmark for the relative error metrics. Two options: "naive" (sequential extension of last value) or "average" (mean value of true sequence). Default: "naive". |
seed |
Positive integer. Random seed. Default: 42. |
ann |
String. Approximate nearest-neighbor backend. Options are: "auto", "exact", and "projection". Default: "auto". |
gpu |
String. Acceleration policy for distance calculations. Options are: "auto", "off", and "torch". Default: "auto". |
probabilistic |
Logical. Return simulated forecast distributions and probabilistic summaries. Default: TRUE. |
conformal |
Logical. Add split-conformal forecast intervals calibrated on validation windows. Default: TRUE. |
multiscale |
Positive integer vector. Sequence aggregation scales used in the neighbor representation. Default: c(1, 2, 4). |
n_draws |
Positive integer. Number of simulated draws for probabilistic forecasts. Default: 1000. |
Value
This function returns a list including:
exploration: list of all models, complete with predictions, test metrics, prediction stats and plot
history: a table with the sampled models, hyper-parameters, validation errors
best_model: results for the best model, including:
predictions: min, max, q25, q50, q75, quantiles at selected ci, and different statics for numerical and categorical variables
testing_errors: training and testing errors for one-step and sequence for each ts feature (different measures for numerical and categorical variables)
distribution: simulated forecast draws for each feature when probabilistic = TRUE
settings: v2 execution settings for ANN, GPU, conformal, probabilistic and multiscale options
time_log
Author(s)
Giancarlo Vercellino giancarlo.vercellino@gmail.com
See Also
Useful links:
Examples
jenga(covid_in_europe[, c(2, 3)], n_sample = 1)
jenga(covid_in_europe[, c(4, 5)], n_sample = 1)
covid_in_europe data set
Description
A data frame with with daily and cumulative cases of Covid infections and deaths in Europe since March 2021.
Usage
covid_in_europe
Format
A data frame with 5 columns and 163 rows.
Source
www.ecdc.europa.eu
Plot jenga forecast objects
Description
Plot jenga forecast objects
Usage
## S3 method for class 'jenga_plot'
plot(x, ...)
Arguments
x |
A jenga forecast plot object. |
... |
Additional arguments passed to the base plotting device. |
Print jenga forecast plot objects
Description
Print jenga forecast plot objects
Usage
## S3 method for class 'jenga_plot'
print(x, ...)
Arguments
x |
A jenga forecast plot object. |
... |
Additional arguments passed to the base plotting device. |