Title: | 'L-BFGS' Algorithm Based on 'Blaze' for 'R' and 'Rcpp' |
---|---|
Description: | The 'L-BFGS' algorithm is a popular optimization algorithm for unconstrained optimization problems. 'Blaze' is a high-performance 'C++' math library for dense and sparse arithmetic. This package provides a simple interface to the 'L-BFGS' algorithm and allows users to optimize their objective functions with 'Blaze' vectors and matrices in 'R' and 'Rcpp'. |
Authors: | Ching-Chuan Chen [aut, cre, ctr] , Zhepei Wang [aut] (LBFGS-Lite), Naoaki Okazaki [aut] (liblbfgs) |
Maintainer: | Ching-Chuan Chen <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.0 |
Built: | 2024-11-11 06:49:13 UTC |
Source: | CRAN |
RcppLbfgsBlaze constructs a simple interface to the L-BFGS algorithm based on Blaze for R and Rcpp.
This package provides an implementation of the L-BFGS algorithm based on Blaze for R and Rcpp. The L-BFGS algorithm is a popular optimization algorithm for unconstrained optimization problems. Blaze is a high-performance C++ math library for dense and sparse arithmetic. The package provides a simple interface to the L-BFGS algorithm and allows users to optimize their objective functions with Blaze vectors and matrices in R and Rcpp.
The simplest way to get started is to create a skeleton of a package using RcppLbfgsBlaze.
The important steps are
Include the ‘RcppBlaze.h’ and ‘lbfgs.h’ header files.
Import Rcpp
. LinkingTo Rcpp
, RcppBlaze
and RcppLbfgsBlaze
by adding these lines to the ‘DESCRIPTION’ file:
Imports: Rcpp (>= 1.0.0) LinkingTo: Rcpp, RcppBlaze (>= 1.0.0), RcppLbfgsBlaze
Link against the BLAS
and LAPACK
libraries, by adding following two lines in the ‘Makevars’ and ‘Makevars.win’ files:
PKG_CXXFLAGS=$(SHLIB_OPENMP_CXXFLAGS) PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) $(SHLIB_OPENMP_CXXFLAGS)
For RcppLbfgsBlaze: Ching-Chuan Chen Maintainer: Ching-Chuan Chen <[email protected]>
Blaze project: https://bitbucket.org/blaze-lib/blaze.
LBFGS-blaze: https://github.com/ChingChuan-Chen/LBFGS-blaze
LBFGS-Lite: https://github.com/ZJU-FAST-Lab/LBFGS-Lite
liblbfgs: https://github.com/chokkan/liblbfgs
Useful links:
Report bugs at https://github.com/Chingchuan-chen/RcppLbfgsBlaze/issues
This function leverage blaze
and LBFGS-Blaze
to efficiently fit logistic regression.
fastLogisticModel(X, y)
fastLogisticModel(X, y)
X |
The model matrix. |
y |
The response vector. |
A list of L-BFGS optimization result.
X <- matrix(rnorm(5000), 1000) coef <- runif(5, -3, 3) y <- sapply(1 / (1 + exp(-X %*% coef)), function(p) rbinom(1, 1, p), USE.NAMES = FALSE) fit <- fastLogisticModel(X, y)
X <- matrix(rnorm(5000), 1000) coef <- runif(5, -3, 3) y <- sapply(1 / (1 + exp(-X %*% coef)), function(p) rbinom(1, 1, p), USE.NAMES = FALSE) fit <- fastLogisticModel(X, y)