The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
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
.
You can install:
the latest development version from github with
If you encounter a bug, please file a reproducible example on github.
You can refer to the file logisticBenchmark.R to find the code. Below code and corresponding results show that RcppLbfgsblaze
provides a fast and efficient algorithm for logistic model fitting. In the benchmark, RcppLbfgsBlaze
is only slower than RcppNumerical
, but faster than others.
```R
source(system.file("examples", "logisticBenchmark.R", package = "RcppLbfgsBlaze"))
# logistic model fitting benchmark for n = 10000, p = 100 and non-zero p = 6: nrep = 20
# Unit: milliseconds
# expr min lq mean median uq max neval
# glm.fit 254.8283 259.26340 277.47036 263.97765 283.17805 336.0213 20
# optim 65.6519 69.05245 73.98623 70.32615 71.59410 148.2856 20
# optim_arma 16.1281 16.97425 22.05490 17.81580 18.27810 94.6341 20
# glmnet 38.5915 39.07820 44.26353 39.85460 41.21905 114.7233 20
# lbfgs 85.7390 88.19755 96.58998 92.39210 94.74080 165.2018 20
# lbfgs_arma 20.7813 21.87255 23.06615 22.71525 23.43450 29.2101 20
# RcppNumerical 8.5511 9.06755 9.81808 9.54100 9.92005 16.1381 20
# RcppLbfgsBlaze 10.0476 10.53910 11.26658 11.16235 11.59385 14.2053 20
```
When the sample size and number of predictors increase, RcppLbfgsBlaze
will be faster than RcppNumerical
and others. It shows that RcppLbfgsBlaze
provides relatively fast algorithm comparing to otehrs.
```R
# logistic model fitting benchmark for n = 50000, p = 500 and non-zero p = 6: nrep = 20
# Unit: milliseconds
# expr min lq mean median uq max neval
# optim_arma 547.1768 556.3317 578.6516 576.7488 594.5491 632.7897 20
# lbfgs_arma 1501.6494 1537.9691 1573.0044 1561.6261 1606.5876 1675.4529 20
# RcppNumerical 250.6525 255.3796 263.2894 262.5797 269.0240 286.2630 20
# RcppLbfgsBlaze 150.5987 154.8733 158.7338 156.8559 161.5664 173.0606 20
```
Above results are run on my desktop (i9-13900K, DDR5-4000 128GB).
Ching-Chuan Chen
MIT License
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.