Package 'RcppLbfgsBlaze'

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

Help Index


RcppLbfgsBlaze - Rcpp interface to the L-BFGS algorithm with Blaze

Description

RcppLbfgsBlaze constructs a simple interface to the L-BFGS algorithm based on Blaze for R and Rcpp.

Details

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.

Using RcppLbfgsBlaze

The simplest way to get started is to create a skeleton of a package using RcppLbfgsBlaze.

The important steps are

  1. Include the ‘⁠RcppBlaze.h⁠’ and ‘⁠lbfgs.h⁠’ header files.

  2. 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
    
  3. 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)
    

Author(s)

For RcppLbfgsBlaze: Ching-Chuan Chen Maintainer: Ching-Chuan Chen <[email protected]>

References

  1. Blaze project: https://bitbucket.org/blaze-lib/blaze.

  2. LBFGS-blaze: https://github.com/ChingChuan-Chen/LBFGS-blaze

  3. LBFGS-Lite: https://github.com/ZJU-FAST-Lab/LBFGS-Lite

  4. liblbfgs: https://github.com/chokkan/liblbfgs

See Also

Useful links:


Logistic Regression Fitting Using L-BFGS Algorithm

Description

This function leverage blaze and LBFGS-Blaze to efficiently fit logistic regression.

Usage

fastLogisticModel(X, y)

Arguments

X

The model matrix.

y

The response vector.

Value

A list of L-BFGS optimization result.

Examples

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)