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
Hashes for lightgbm_tools-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06bbd6606eeb293b328d17e05ead4b7db5b3108e012df468645d54bd3b950480 |
|
MD5 | b6c942ea71641f71f40d4818d5220c1a |
|
BLAKE2b-256 | e3db2f67222645a3479517df93cfc5f3ef77a36d6c4418d83379054b8a69ad37 |