跳转到主要内容

LightGM 工具

项目描述

LightGBM 工具

MIT License Python Version pypi

此Python包实现了针对LightGBM的工具。在当前版本中,lightgbm-tools专注于二分类指标。

这个工具具体解决了什么问题?

LightGBM有一些内置指标可以使用。这些指标很有用,但有限。一些重要的指标缺失。这些指标包括F1分数平均精度(AP)

可以使用此工具轻松添加这些指标。这是通过LightGBM内部机制实现的,其中我们可以将回调分配给lightgbm.trainfeval参数(请参阅lightgbm.train文档)。

维护者

One Conversation
此项目由 One Conversation 团队维护,该团队属于 德国电信股份公司

用法

您可以在以下位置找到功能齐全的示例: https://github.com/telekom/lightgbm-tools/blob/main/examples/main_usage.py

最简单的方法是使用预定义的回调函数。这些包括

  • lightgbm_tools.metrics.lgbm_f1_score_callback
  • lightgbm_tools.metrics.lgbm_accuracy_score_callback
  • lightgbm_tools.metrics.lgbm_average_precision_score_callback
  • lightgbm_tools.metrics.lgbm_roc_auc_score_callback
  • lightgbm_tools.metrics.lgbm_recall_score_callback
  • lightgbm_tools.metrics.lgbm_precision_score_callback

这里以 F1 为例,展示如何使用预定义的回调函数

import lightgbm
from lightgbm_tools.metrics import lgbm_f1_score_callback

bst = lightgbm.train(
    params,
    train_data,
    valid_sets=val_data,
    num_boost_round=6,
    verbose_eval=False,
    evals_result=evals_result,
    feval=lgbm_f1_score_callback,  # here we pass the callback to LightGBM
)

您还可以重用其他度量标准的实现。以下是如何使用 scikit-learn 中的 balanced_accuracy_score 的示例

import lightgbm
from sklearn.metrics import balanced_accuracy_score
from lightgbm_tools.metrics import LightGbmEvalFunction, binary_eval_callback_factory

# define 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,
)

# use the factory function to create the callback
lgbm_balanced_accuracy_callback = binary_eval_callback_factory([lgbm_balanced_accuracy])

bst = lightgbm.train(
    params,
    train_data,
    valid_sets=val_data,
    num_boost_round=6,
    verbose_eval=False,
    evals_result=evals_result,
    feval=lgbm_balanced_accuracy_callback,  # here we pass the callback to LightGBM
)

此工具还可以同时计算多个度量标准。可以通过向 binary_eval_callback_factory 传递多个度量标准的定义(列表形式)来实现。以下预定义的度量标准定义(LightGbmEvalFunction)可用

  • lightgbm_tools.metrics.lgbm_f1_score
  • lightgbm_tools.metrics.lgbm_accuracy_score
  • lightgbm_tools.metrics.lgbm_average_precision_score
  • lightgbm_tools.metrics.lgbm_roc_auc_score
  • lightgbm_tools.metrics.lgbm_recall_score
  • lightgbm_tools.metrics.lgbm_precision_score

以下是如何组合 F1 和平均精度的示例

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

# use the factory function to create the callback
callback = binary_eval_callback_factory([lgbm_average_precision_score, lgbm_f1_score])

bst = lightgbm.train(
    params,
    train_data,
    valid_sets=val_data,
    num_boost_round=6,
    verbose_eval=False,
    evals_result=evals_result,
    feval=callback,  # here we pass the callback to LightGBM
)

安装

可以使用 pip 安装 lightgbm-tools

pip install lightgbm-tools

要本地进行开发和运行单元测试,请确保已安装所有相关依赖项。如果您在本地进行开发,可能希望以“可编辑模式”安装

pip install -e .[all]

许可

版权所有 (c) 2022 Philip May德国电信股份公司

根据 MIT 许可证(“许可证”);除非遵守许可证,否则不得使用此文件。您可以通过查看存储库中的文件 LICENSE 获得许可证的副本。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

lightgbm_tools-0.0.2.tar.gz (6.1 KB 查看哈希值

上传时间:

构建分布

lightgbm_tools-0.0.2-py3-none-any.whl (5.9 KB 查看哈希值

上传时间: Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面