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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c6300afd9c4f83c51e89acdb2c479c86e448d4a18b067e2f6d49b87795c8fb3 |
|
MD5 | f54cbdf12f34bbad2c84103537fde9b0 |
|
BLAKE2b-256 | b8be43d0ee0032b194a06e0bd4d8db50af05349156a28a5de980e807222a87b8 |
File details
Details for the file lightgbm_tools-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: lightgbm_tools-0.0.1-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06bbd6606eeb293b328d17e05ead4b7db5b3108e012df468645d54bd3b950480 |
|
MD5 | b6c942ea71641f71f40d4818d5220c1a |
|
BLAKE2b-256 | e3db2f67222645a3479517df93cfc5f3ef77a36d6c4418d83379054b8a69ad37 |