gnu: Add lightgbm.

* gnu/packages/machine-learning.scm (lightgbm): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Fis Trivial 2018-06-12 10:01:16 +00:00 committed by Ludovic Courtès
parent baed923682
commit 112c2c010b
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -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)))