A Python package to compute the elastic net algorithm, boosted by an own C++ implementation.
Work in progress!
Our package shows promising performance in comparison to the Python port of the Fortran code for the glmnet package. However, our package does not offer as many features as glmnet does.
Output of timings via pytest-benchmark:
tests/performance_tests/test_elnetpy_glmnet.py ...... [100%]
---------------------------------------------------------------------------------------- benchmark: 6 tests ---------------------------------------------------------------------------------------
Name (time in ms) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_linear_elnetpy[1] 1.3159 (1.0) 6.5030 (1.53) 1.5182 (1.0) 0.3374 (1.32) 1.4534 (1.0) 0.1195 (1.0) 30;48 658.6832 (1.0) 506 1
test_linear_elnetpy[0.5] 1.3345 (1.01) 4.2456 (1.0) 1.5505 (1.02) 0.2566 (1.0) 1.4802 (1.02) 0.1232 (1.03) 52;59 644.9656 (0.98) 461 1
test_linear_elnetpy[0] 1.3483 (1.02) 12.5787 (2.96) 2.0079 (1.32) 0.7661 (2.99) 1.8525 (1.27) 0.7987 (6.68) 36;12 498.0347 (0.76) 468 1
test_linear_glmnet[0.5] 109.4735 (83.19) 266.6773 (62.81) 163.0891 (107.42) 56.6493 (220.78) 145.6602 (100.22) 90.6115 (758.16) 1;0 6.1316 (0.01) 9 1
test_linear_glmnet[1] 147.7671 (112.29) 304.9664 (71.83) 236.9216 (156.06) 62.1737 (242.31) 258.0482 (177.55) 91.6640 (766.97) 2;0 4.2208 (0.01) 5 1
test_linear_glmnet[0] 164.6977 (125.16) 186.6691 (43.97) 169.9443 (111.94) 9.3810 (36.56) 165.8382 (114.10) 6.3995 (53.55) 1;1 5.8843 (0.01) 5 1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Paper to glmnet: https://web.stanford.edu/~hastie/Papers/glmnet.pdf
glmnet (read-only) GitHub repo: https://github.com/cran/glmnet
Python port of the glmnet Fortran implementation: https://github.com/civisanalytics/python-glmnet