Recent Releases of profoc
profoc - Release 1.3.1
Improvements
- Adjusted the clock.h code so that a larger share of code can be shared between the R and Python versions of that file.
- clock.h now uses welfords online algorithm to calculate the mean and variance of the timings. SD is reported in the times table.
Fixes
- Fixed an integer overflow in the clock.h code which caused the package to fail on some systems.
- Fixed online() function for cases where the regret is exactly zero. This can happen if:
- * Only a single expert is used
- * Only two experts are provided and they both have the same predictions (in the beginning).
- C++
Published by BerriJ over 2 years ago
profoc - Release 1.3.0
Improvements
- New articles explain how to use methods on
online()objects to deploy online learning algorithms in production. - The
conlineC++ class now exposesweightsto R. - A new article on the usage of the
conlineC++ class was added. - Various functions are now exported to R to allow easier interaction with the
conlineC++ class. These functions are:init_experts_list(),make_basis_matsandmake_hat_mats - The code of
online()was simplified a bit by utilizing the newinit_experts_list()function. - Function
post_process_model()was improved and is now exposed to be used in conjunction with theconlineC++ class. - Move aggregation of timings from cppclock.R to clock.h. This make it faster, easier to maintain and simplifies the code (which will be used in python in the future as well).
- C++
Published by BerriJ over 2 years ago
profoc - Release 1.2.1
Improvements
online()outputs now includepredictions_got_sorted. A matrix which indicates whether quantile crossing occured and predictions have been sorted.tidy()methods were added to convertweights,predictionsand loss objects ofonline()output to a tibble (for further analysis, plotting etc.)- A Get started article was added to the docs.
- Docs of the development version were added to the website
Fixes
- This release fixes import / export of of the
autoplot()method. In consequence, ggplot2 became a new dependency of this package.
- C++
Published by BerriJ almost 3 years ago
profoc - Release 1.2.0
Improvements:
- Periodic splines and penalties added for smoothing the weights in
online().
Internal changes
profocnow depends onR >= 4.3.0to ensure C++17 support.
- C++
Published by BerriJ about 3 years ago
profoc - Release 1.1.1
Fixes:
- Distribution of the knots is now correct for
ncp < 0.
- C++
Published by BerriJ over 3 years ago
profoc - Release 1.1.0
Improvements:
- New
penalty()function which works with equidistant and knots.
Fixes:
- Calculation of the P-Spline penalty if non-uniform B-Splines are used.
- C++
Published by BerriJ over 3 years ago
profoc - Release 1.0.0
Changes:
- Now,
online()saves memory by not reportingpast_performanceandpast_predictions_grid. However, the cumulative performance and the most recent predictions w.r.t to the parameter grid are always included in the output. The former is used internally for choosing the best hyperparameter set, and the latter for updating the weights. Depending on the data and the parameter space considered, both objects may get large. You can still opt-in to include them in the output by settingsave_past_performance = TRUEandsave_past_predictions_grid = TRUEinonline().
Internal changes
- Minor fixes and improvements to
online()to reduce memory usage.
- C++
Published by BerriJ over 3 years ago
profoc - Release 0.9.5
Internal changes
- Now,
online()is able to sample from grids of up to 2^64-1 rows. - The new cpp sampling function
sample_int()works similar tosample.int()and also respects seeds set byset.seed().
- C++
Published by BerriJ over 3 years ago
profoc - Release 0.9.4
Fixes:
parametergridslets you provide custom grids of parameters inonline()
Internal changes
- Significantly improved the initialisation efficiency in
online()when using large grids of parameters
- C++
Published by BerriJ over 3 years ago
profoc - Release 0.9.3
Fixes:
forget_past_performancehad no effect inonline()- Improved and fixed documentation
- C++
Published by BerriJ about 4 years ago
profoc - Release 0.9.2
Fixes:
- Resolved a problem with plotting multivariate probabilistic models
- C++
Published by BerriJ over 4 years ago
profoc - Release 0.9.1
Changes:
- Basis matrices are created differently now. This solves an issue where basis functions did not always sum to 1 when non-equidistant knot sequences were used.
- C++
Published by BerriJ over 4 years ago
profoc - Release 0.9.0
Changes:
onlinecan now be used with multivariate data- Just pass a TxK matrix as
yand a TxDxPxK array asexperts
- Just pass a TxK matrix as
- Smoothing was improved. See the documentation for details on the revised interface.
summary.onlinecan be used to obtain selected parameters ofonlinemodels
Internal changes
onlineuses Rcpp Modules to bundle data and functionality into an exposed C++ class- Improvements to plot methods
- C++
Published by BerriJ over 4 years ago
profoc - Release 0.8.5
Changes:
initial_weightsargument is replaces byinitinittakes a named list and currentlyintial_weightsandR0the initial weights and the initial cumulative regret can be provided. They have to be PxK or 1xK.
Internal changes
- Internal changes to improve readability
- Resolve C++ compilation warnings
Refer to NEWS.md for changes in older versions.
- C++
Published by BerriJ over 4 years ago
profoc - Release 0.8.4
Changes:
- Remove unused C++17 dependency
- C++
Published by BerriJ almost 5 years ago
profoc - Release 0.8.3
Changes:
The
profocfunction was extended:regretcan now be passed as an array as before, or as a list, e.g.list(regret = regret_array, share = 0.2)if the provided regret should be mixed with the regret calculated by online.losscan also be provided as a list, see above.
The
batchfunction can now minimize an alternative objection function using the quantile weighted CRPS- This weighting scheme can be activated by setting
qw_crps=TRUE - It defaults to FALSE due to better performance
- This weighting scheme can be activated by setting
Internal changes
- Changes to the splines2 package required some changes on our side. This affected the creation of the b-spline basis. See https://github.com/BerriJ/profoc/pull/3
Refer to NEWS.md for changes in older versions.
- C++
Published by BerriJ almost 5 years ago
profoc - Release 0.8.0
Changes:
- First release on CRAN
- The
profocfunction was renamed toonlinefor consistency. - Added
batchfunction to apply batch-learning. - Added
oraclefunction to approximate the oracle. - Update, predict, plot, and print methods were added for
onlineandbatchobjects.
Interface:
- Unfortunately, we decided to apply significant changes to the API. This likely breaks old code. Please refer to the respective function documentation for more information.
Internal changes:
- The b-spline basis is now calculated using a fast C++ function imported from the splines2 R package.
- The source code is now distributed across different files.
Refer to NEWS.md for changes in older versions.
- C++
Published by BerriJ almost 5 years ago
profoc - Release 0.7.0
Changes:
The spline functions where rewritten to add the ability of using a non-equidistant knot sequence and a penalty term defined on the sobolev space. This change induces breaking changes to small parts of the API.
Interface:
ndiffdefines the degree of differencing for creating the penalty term. For values between 1 and 2 a weighted sum of the difference penalization matrices is used.rel_nsegis replaced byknot_distance( distance between knots). Defaults to 0.025, which corresponds to the grid steps when knotdistancepower = 1 (the default).- A new parameter
knot_distance_powerdefines if knots are uniformly distributed. Defaults to 1 which corresponds to the equidistant case. Values less than 1 create more knots in the center while values above 1 concentrate more knots in the tails. - A new parameter
allow_quantile_crossingdefines if quantile crossing is allowed. Defaults to false, which means that predictions will be sorted.
Internal changes:
- Functions for calculating the b-spline basis are now exported to R as internal functions of the package. They can be accessed using the
package:::functionnotation.
Refer to NEWS.md for changes in older versions.
- C++
Published by BerriJ about 5 years ago
profoc - Release 0.6.0
Changes:
Interface:
ymust now be a matrix of either Tx1 or TxP.tracespecifies whether a progress bar will be printed or not. Default toTRUE.loss_functionlets you now specify "quantile", "expectile" or "percentage". All functions are generalized as in Gneitling 2009. The power can be scaled byloss_parameter. The latter defaults to 1, which leads to the well-known quantile, squared, and absolute percentage loss.gradientlets you specify whether the learning algorithms should consider actual loss or a linearized version using the gradient of the loss. Defaults toTRUE(gradient-based learning).forget_performancewas added. It defines the share of the past performance that will be ignored when selecting the best parameter combination.- Renamed
forgetparameter toforget_regretto underline its reference to the regret. - New
init_weightsparameter. Has to be either a Kx1 or KxP matrix specifying the experts' starting weights. - Add
lead_timeparameter. offset for expert forecasts. Defaults to 0 which means that experts predict t+1 at t. Setting this to h means experts predictions refer to t+1+h at time t. The weight updates delay accordingly.
Internal:
- If more expert forecasts than observations are provided, the excessive expert forecasts are used for prediction using the most recent weights.
tauis now optional. It defaults to 1:P/(P+1). A scalar given to tau will be repeated P times. The latter is useful in multivariate settings.- The pinballloss and losspred functions were replaced by a more flexible function called
loss. - The
weightsobject is changed from a T+1xKxP array to a T+1xPxK array to match other objects' dimensions. Now the following indexing scheme is consistent throughout the package: (Time, Probabilities, Experts, Parameter combination) - Fixed Bug that caused single quantile calculations to fail.
- Various internal changes to improve readability and performance.
Refer to NEWS.md for changes in older versions.
- C++
Published by BerriJ over 5 years ago