Title: | Header-Only C++ Mathematical Optimization Library for 'Armadillo' |
---|---|
Description: | 'Ensmallen' is a templated C++ mathematical optimization library (by the 'MLPACK' team) that provides a simple set of abstractions for writing an objective function to optimize. Provided within are various standard and cutting-edge optimizers that include full-batch gradient descent techniques, small-batch techniques, gradient-free optimizers, and constrained optimization. The 'RcppEnsmallen' package includes the header files from the 'Ensmallen' library and pairs the appropriate header files from 'armadillo' through the 'RcppArmadillo' package. Therefore, users do not need to install 'Ensmallen' nor 'Armadillo' to use 'RcppEnsmallen'. Note that 'Ensmallen' is licensed under 3-Clause BSD, 'Armadillo' starting from 7.800.0 is licensed under Apache License 2, 'RcppArmadillo' (the 'Rcpp' bindings/bridge to 'Armadillo') is licensed under the GNU GPL version 2 or later. Thus, 'RcppEnsmallen' is also licensed under similar terms. Note that 'Ensmallen' requires a compiler that supports 'C++11' and 'Armadillo' 9.800 or later. |
Authors: | James Joseph Balamuta [aut, cre, cph] , Dirk Eddelbuettel [aut, cph] |
Maintainer: | James Joseph Balamuta <[email protected]> |
License: | GPL (>= 2) |
Version: | 0.2.21.1.1 |
Built: | 2024-11-12 03:40:09 UTC |
Source: | https://github.com/coatless-rpkg/rcppensmallen |
'Ensmallen' is a templated C++ mathematical optimization library (by the 'MLPACK' team) that provides a simple set of abstractions for writing an objective function to optimize. Provided within are various standard and cutting-edge optimizers that include full-batch gradient descent techniques, small-batch techniques, gradient-free optimizers, and constrained optimization. The 'RcppEnsmallen' package includes the header files from the 'Ensmallen' library and pairs the appropriate header files from 'armadillo' through the 'RcppArmadillo' package. Therefore, users do not need to install 'Ensmallen' nor 'Armadillo' to use 'RcppEnsmallen'. Note that 'Ensmallen' is licensed under 3-Clause BSD, 'Armadillo' starting from 7.800.0 is licensed under Apache License 2, 'RcppArmadillo' (the 'Rcpp' bindings/bridge to 'Armadillo') is licensed under the GNU GPL version 2 or later. Thus, 'RcppEnsmallen' is also licensed under similar terms. Note that 'Ensmallen' requires a compiler that supports 'C++11' and 'Armadillo' 9.800 or later.
Maintainer: James Joseph Balamuta [email protected] (ORCID) [copyright holder]
Authors:
Dirk Eddelbuettel [email protected] (ORCID) [copyright holder]
Useful links:
Report bugs at https://github.com/coatless-rpkg/rcppensmallen/issues
Solves the Linear Regression's Residual Sum of Squares using the L-BFGS optimizer.
lin_reg_lbfgs(X, y)
lin_reg_lbfgs(X, y)
X |
A |
y |
A |
Consider the Residual Sum of Squares, also known as RSS, defined as:
The objective function is defined as:
The gradient is defined as:
The estimated parameter values for the linear regression.
# Number of Points n = 1000 # Select beta parameters beta = c(-2, 1.5, 3, 8.2, 6.6) # Number of Predictors (including intercept) p = length(beta) # Generate predictors from a normal distribution X_i = matrix(rnorm(n), ncol = p - 1) # Add an intercept X = cbind(1, X_i) # Generate y values y = X%*%beta + rnorm(n / (p - 1)) # Run optimization with lbfgs theta_hat = lin_reg_lbfgs(X, y) # Verify parameters were recovered cbind(actual = beta, estimated = theta_hat)
# Number of Points n = 1000 # Select beta parameters beta = c(-2, 1.5, 3, 8.2, 6.6) # Number of Predictors (including intercept) p = length(beta) # Generate predictors from a normal distribution X_i = matrix(rnorm(n), ncol = p - 1) # Add an intercept X = cbind(1, X_i) # Generate y values y = X%*%beta + rnorm(n / (p - 1)) # Run optimization with lbfgs theta_hat = lin_reg_lbfgs(X, y) # Verify parameters were recovered cbind(actual = beta, estimated = theta_hat)