From 112c2c010b2e84691302bdc174d9a4825dc6ca24 Mon Sep 17 00:00:00 2001 From: Fis Trivial Date: Tue, 12 Jun 2018 10:01:16 +0000 Subject: [PATCH] gnu: Add lightgbm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/machine-learning.scm (lightgbm): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/machine-learning.scm | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 15e4d45749..cda5c1e2c8 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -47,6 +47,7 @@ (define-module (gnu packages machine-learning) #:use-module (gnu packages gcc) #:use-module (gnu packages image) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages ocaml) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -786,3 +787,49 @@ (define-public python-autograd (define-public python2-autograd (package-with-python2 python-autograd)) + +(define-public lightgbm + (package + (name "lightgbm") + (version "2.0.12") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Microsoft/LightGBM/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "132zf0yk0545mg72hyzxm102g3hpb6ixx9hnf8zd2k55gas6cjj1")) + (file-name (string-append name "-" version ".tar.gz")))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-nose" ,python-nose))) + (inputs + `(("openmpi" ,openmpi))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy))) + (arguments + `(#:configure-flags + '("-DUSE_MPI=ON") + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion ,(string-append "../LightGBM-" version) + (invoke "pytest" "tests/c_api_test/test_.py"))))))) + (build-system cmake-build-system) + (home-page "https://github.com/Microsoft/LightGBM") + (synopsis "Gradient boosting framework based on decision tree algorithms") + (description "LightGBM is a gradient boosting framework that uses tree +based learning algorithms. It is designed to be distributed and efficient with +the following advantages: + +@itemize +@item Faster training speed and higher efficiency +@item Lower memory usage +@item Better accuracy +@item Parallel and GPU learning supported (not enabled in this package) +@item Capable of handling large-scale data +@end itemize\n") + (license license:expat)))