pypi lightgbm 4.7.0
v4.7.0

21 hours ago

Highlights

The Python package now supports polars inputs, thanks to narwhals.
Thanks to @borchero for the main implementation and to everyone who contributed design work, especially on #6204 (@maxzw @detrin @jmoralez @lcrmorin @Ic3fr0g @MarcoGorelli @kylebarron @vyasr).

Significantly improved GPU support including the first ROCm builds (#6086) and multi-GPU support for NVIDIA GPUs via NCCL (#6138). (@jeffdaily @shiyu1994 @StrikerRUS)

Improvements to distributed training / Dask. Lots of bugfixes in this area, still ongoing work, thanks especially to @wagner-austin for all the help.

Changes

💡 New Features

  • [python-package] allow access to eval result attributes by name @jameslamb (#7161)
  • [python-package] Allow to pass Arrow array & Polars series as position @maxzw (#7260)
  • [c++][python-package] Leverage Arrow PyCapsule Interface for Arrow interoperability (including polars support) @borchero (#7275)
  • [python-package] publish nightlies to pypi.anaconda.org @jameslamb (#7245)
  • [python-package] Add decision_function() to LGBMClassifier @CoderWota (#7159)
  • [CUDA] Multi-GPU for CUDA Version @shiyu1994 (#6138)
  • [python-package] scikit-learn fit() methods: add eval_X, eval_y, deprecate eval_set @lorentzenchr (#6857)
  • [CUDA] Add CUDA version of binary error metric @nicklamiller (#7070)
  • [c++] Add CPU version of standard R-squared metric @nicklamiller (#7008)
  • [python-package] Follow symlinks to lib_lightgbm in library-loading @gmhewett (#6977)
  • [ROCm] add support for ROCm/HIP device @jeffdaily (#6086)
  • [python-package][sklearn] Support PyArrow Table as an input in scikit-learn methods @StrikerRUS (#6910)
  • [ci] [dask] test lightgbm.dask on macOS @jameslamb (#6677)

🔨 Breaking

  • [ci] avoid overwriting installed 'build' in build-python.sh @jameslamb (#7356)
  • change default branch from 'master' to 'main' @jameslamb (#7287)
  • [CUDA] support CUDA 13, support user-supplied CUDA architecture list, update default GPU architectures @jameslamb (#7271)
  • [python-package] make some imports lazy: 'dask', 'graphviz', 'joblib', 'matplotlib', 'psutil' @jameslamb (#7340)
  • [python-package] Make Dataset.set_position() update self.position @maxzw (#7344)
  • [c++][python-package] Leverage Arrow PyCapsule Interface for Arrow interoperability (including polars support) @borchero (#7275)
  • [c++] Remove incorrect const modifier from Arrow-related C API @borchero (#7284)
  • [python-package] Bump minimum supported Python version to 3.10 @borchero (#7276)
  • [ci] [docs] update handling of artifacts, stop publishing zip archive of complete source code @jameslamb (#7080)
  • [c++] default to C++17 for most builds @jameslamb (#7016)
  • [ci] [C++] drop support for Visual Studio 2015 (fixes #6803) @jameslamb (#7022)
  • [R-package] [ci] drop support for R 3.x (fixes #7023) @jameslamb (#7038)
  • [CUDA] default to C++17 for CUDA builds @jameslamb (#7013)
  • [ci] Drop support for Python 3.7 and Python 3.8 @borchero (#6896)
  • [python-package] drop support for h2o datatable @jameslamb (#6894)
  • [python-package] Load parameters from model string @Samsagax (#6852)
  • [R-package] make finalize() in R6 classes private @jameslamb (#6833)

🚀 Efficiency Improvement

🐛 Bug Fixes

📖 Documentation

🧰 Maintenance

Don't miss a new lightgbm release

NewReleases is sending notifications on new releases.