timesift 0.3.1

New

Fixed

The reproduction

timesift 0.3.0

Changed

timesift 0.2.0

Changed

New

Documentation

timesift 0.1.1

New

Paired contrasts

The response head

Fitting

The representation boundary

Names

What a rare response weighs

Fitting under a grouping

Fixes

The selection benchmark

Packaging

timesift 0.1.0

timesift() is the whole entry point. A table of targets, a table of time-stamped series belonging to them, and one call builds every candidate representation, fits the learners that can read each one, scores them all on one set of held-out folds, and stacks the out-of-fold predictions.

fit <- timesift(plots, logger, y = starts_with("sp_"), id = plot_id, time = datetime,
                models = c(elasticnet(), forest(), cnn()),
                sift = grains("day", "week", "month"))
summary(fit)

The version reads 0.1.0 because this is a first release: the package fits any time-varying record against any prediction target, where its predecessors fitted a climate record at a climate grain. Species distribution modelling from microclimate loggers is the application it ships defaults for, and the Schrankogel grid it was built on still reproduces from inst/reproduce/schrankogel.R.

The four concepts

Representations

Learners and training

Resampling and the ensemble

Names

climgrain 0.3.0

The package is renamed from timegrain to timesift. With it go the C++ prefix (tg_ to ts_ and the four files that carried it), the S3 classes (timegrain_matrix and its siblings to timesift_matrix), timegrain_set() to timesift_set(), and the Python module. No function signature, default or return type changed, and the fixture digests are untouched.

What the user chooses is the temporal grain of a climate representation, and the name now carries the thing whose grain it is. The title reads “Temporal Climate Resolution for Ecological Prediction”.

climgrain 0.2.0

The binning and the reduction are now one implementation, src/ts_core.cpp and src/ts_calendar.cpp, compiled into the R package by R itself and into the Python extension by CMake. The two languages agree by construction rather than by two implementations being checked against each other after the fact. What each side keeps above it is the boundary: resolving the columns, resolving the zone, and wrapping the result.

Four bugs that existed twice, once per language, are closed by that (#1, #2, #4, #5), and a fifth on the Python side with them (#3).

The calendar

Guards

Evidence

The two languages

The names, the defaults and the extension points had drifted, so a script moved from one side to the other met them one at a time (#8). One name per concept now, and where the two still differ the difference is a row in inst/spec/representation.md rather than something to be discovered at a call site.

Build

Documentation

climgrain 0.1.0

First release. The package builds the representation, fits at every grain, and reports where predictive skill saturates.

Representation

Fitting and scoring

Learners

Reproducing the study

The cross-language contract