Skip to main content

LightGM Tools

Project description

LightGBM Tools

This Python package implements tools for LightGBM. In the current version lightgbm-tools focuses on binary classification metrics.

What exact problem does this tool solve?

LightGBM has some built-in metrics that can be used. These are useful but limited. Some important metrics are missing. These are, among others, the F1-score and the average precision (AP).

These metrics can be easily added using this tool. This happens through a mechanism built into LightGBM where we can assign a callback to the feval parameter of lightgbm.train (see lightgbm.train documentation).

Maintainers

One Conversation
This project is maintained by the One Conversation team of Deutsche Telekom AG.

Usage

For a full example see here: https://github.com/telekom/lightgbm-tools/blob/main/examples/main_usage.py

Create own custom eval (metric) function:

from sklearn.metrics import balanced_accuracy_score
from lightgbm_tools.metrics import LightGbmEvalFunction

# create own custom eval (metric) function for balanced_accuracy_score
lgbm_balanced_accuracy = LightGbmEvalFunction(
    name="balanced_accuracy",
    function=balanced_accuracy_score,
    is_higher_better=True,
    needs_binary_predictions=True,
)

Create the callback function for LightGBM:

from lightgbm_tools.metrics import (
    binary_eval_callback_factory,
    lgbm_accuracy_score,
    lgbm_average_precision_score,
    lgbm_f1_score,
)

# use the factory function to create the callback
# add the predefined F1, accuracy and average precision metrics
# and the own custom eval (metric) function for balanced_accuracy_score
callback = binary_eval_callback_factory(
    [lgbm_f1_score, lgbm_accuracy_score, lgbm_average_precision_score, lgbm_balanced_accuracy]
)

Use the callback:

import lightgbm as lgbm

bst = lgbm.train(
    param,
    train_data,
    valid_sets=val_data,
    num_boost_round=6,
    verbose_eval=False,
    evals_result=evals_result,
    feval=callback,  # here we pass the callback
)

Licensing

Copyright (c) 2022 Philip May, Deutsche Telekom AG

Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License by reviewing the file LICENSE in the repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lightgbm_tools-0.0.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

lightgbm_tools-0.0.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file lightgbm_tools-0.0.1.tar.gz.

File metadata

  • Download URL: lightgbm_tools-0.0.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for lightgbm_tools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 7c6300afd9c4f83c51e89acdb2c479c86e448d4a18b067e2f6d49b87795c8fb3
MD5 f54cbdf12f34bbad2c84103537fde9b0
BLAKE2b-256 b8be43d0ee0032b194a06e0bd4d8db50af05349156a28a5de980e807222a87b8

See more details on using hashes here.

File details

Details for the file lightgbm_tools-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lightgbm_tools-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06bbd6606eeb293b328d17e05ead4b7db5b3108e012df468645d54bd3b950480
MD5 b6c942ea71641f71f40d4818d5220c1a
BLAKE2b-256 e3db2f67222645a3479517df93cfc5f3ef77a36d6c4418d83379054b8a69ad37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page