如何在 Python 中使用 LightGBM2024 年 8 月 29 日 | 阅读 6 分钟 引言人工智能领域取得了巨大的进步,促成了各种算法的发展,以处理复杂的任务。其中一种算法是 LightGBM,它是 Light Gradient Boosting Machine 的缩写。LightGBM 因其效率、速度和处理大规模数据集的能力而越来越受欢迎。在本文中,我们将探讨 LightGBM 是什么,它是如何工作的,以及如何在 Python 中使用它来增强您的机器学习模型。 要理解 LightGBM,我们需要理解梯度提升的概念 在深入研究 LightGBM 之前,理解梯度提升的概念至关重要。梯度提升是一种集成学习方法,它将多个弱学习器(通常是决策树)组合起来,创建一个更强的预测模型。梯度提升的关键思想是顺序地将新的弱学习器添加到模型中,后续的学习器纠正其前身所犯的错误。这种迭代方法可以创建一个比单个基本模型更准确、更鲁棒的集成模型。 LightGBM 的诞生与概述LightGBM 由微软的 Guolin Ke 等人于 2016 年开发。开发 LightGBM 的动机是为了解决传统梯度提升框架在效率和可扩展性方面的局限性。传统的梯度提升方法以层级方式构建树,这可能非常耗时,尤其是在处理大型数据集时。LightGBM 旨在克服这些挑战,为构建梯度提升模型提供更快、内存占用更少的解决方案。 LightGBM 是微软开发的一个梯度提升框架。它属于集成学习策略,该策略结合了多个弱学习器(通常是决策树)的预测,以创建一个强大的模型。“梯度提升”一词指的是顺序添加新弱学习器的迭代过程,其中每个新学习器都会纠正其前身所犯的错误。 LightGBM 的优势速度和效率:LightGBM 的设计旨在快速且内存占用少。它使用基于直方图的方法对连续特征值进行分箱,这大大减少了内存占用并加快了训练过程。 处理大型数据集:由于其高效的设计,LightGBM 可以处理其他算法可能无法放入内存的大型数据集。 特征重要性:LightGBM 提供了一种计算特征重要性的直接方法,让您可以深入了解数据集中最具影响力的特征。 分类特征支持:与一些传统的梯度下降库不同,LightGBM 本地支持分类特征,无需进行独热编码。 准确的预测:尽管速度快且效率高,LightGBM 在模型准确性方面并未妥协。与其他梯度提升框架相比,它始终能提供具有竞争力的性能。 LightGBM 的工作原理LightGBM 通过几种关键技术实现了其高效性 叶子生长:与传统的深度生长不同,LightGBM 以叶子生长的方式生长树。它选择 delta 损失最大的叶节点来生长树。这种方法导致更少的层级和更复杂的树,从而提高了模型性能。 基于梯度的单边采样 (GOSS):在训练过程中,LightGBM 使用 GOSS,这是一种选择重要数据实例而丢弃信息量较少实例的技术。此过程减少了每次迭代使用的样本数量,从而在不牺牲准确性的情况下有效地加快了训练速度。 独占特征绑定 (EFB):LightGBM 使用 EFB 将独占特征绑定在一起,减少了需要考虑的分割点数量。这项技术显着加快了树构建过程,尤其适用于具有大量特征的数据集。 LightGBM 的特点为了解决这个问题,使用了 LGBM 或 Light Gradient Boosting Model。它使用了两种技术:基于梯度的单边采样(GOSS)和独占特征绑定(EFB)。因此,GOSS 将会丢弃大部分梯度较小的数据实例,仅使用剩余的数据来估计整体信息增益。梯度较大的数据实例实际上在计算信息增益方面起着主要作用。尽管使用的德数据集比其他模型小,但 GOSS 仍能获得显着的信息增益和准确的结果。 通过 EFB,它将互斥的特征分组在一起,只保留它们,很少取非零值,从而减少了特征数量。这对于强大的特征消除会影响整体结果,而不会损害分割点的准确性。 通过结合这两种改进,可以将任何算法的训练时间提高数倍。因此,LGBM 可以被认为是 EFB 和 GOSS 组合的梯度提升树。您可以在此处访问其官方文档。 LGBM 模型的主要特点如下:
凭借上述 LGBM 的特点和优势,它已成为机器学习竞赛中的默认算法,尤其是在处理表格类型数据的回归和分类问题时。 LGBM 背后的数学原理我们使用一种称为决策树的概念,以便我们可以压缩一个函数,例如,从数据空间 X,映射到梯度空间 G。需要一个包含 x1、x2 到 xn 等实例的训练集,其中每个元素都是空间 X 中 s 维的向量。在梯度提升的每次迭代中,损失函数相对于结果模型的负梯度表示为 g1、g2 到 gn。决策树通过在最有信息量的特征处分割每个节点来工作,它也带来了最大的证据增益。在此类模型中,数据改进可以通过分割后的方差来衡量。 Python 中 LGBM 的代码要在 Python 中编写 LightGBM (LGBM) 模型,您首先需要安装必要的库,然后继续编写代码。LightGBM 是一个梯度提升框架,可为机器学习任务提供快速高效的实现。您可以使用以下命令进行安装: 我们将使用泰坦尼克号乘客数据集。 要在 LightGBM 模型中使用泰坦尼克号数据集,您需要先加载数据集,对其进行预处理,然后训练模型。假设您的泰坦尼克号数据集在一个名为“titanic.csv”的 CSV 文件中,以下是构建和训练 LightGBM 模型的代码: 请确保泰坦尼克号数据集 CSV 文件位于正确的位置,或相应地更新文件路径。此外,请考虑根据数据集的特定特性执行进一步的预处理和特征工程,以提高模型的性能。 输出 Accuracy: 0.8235294117647058 在此示例中,准确率约为 0.82,这意味着 LightGBM 模型在测试集中正确预测了约 82% 的乘客的生存状态。 注意:请注意,您的实际输出将根据具体的数据分割、模型训练和随机初始化而有所不同。模型的准确性取决于多种因素,例如数据预处理、特征工程、超参数调整以及数据集的质量。重要的是要记住,模型评估不应仅基于一次运行,而应基于多次运行的平均性能或通过交叉验证。 |
在本教程中,我们将学习用 Python 编写的 bisect 算法。它的源代码只有 80 行。让我们通过 bisect 模块的介绍。介绍 它基本上是一个二分法算法,用于查找添加给定值的插入点...
7 分钟阅读
如果一个数的平方的最后几位与这个数本身相同,那么这个数就被称为自守数。以下是自守数的例子:1. 输入:25 输出 - 是的,它是一个自守数。原因 - 25 的平方是 625,...
阅读 3 分钟
与文件系统交互和处理文件至关重要,原因有很多。最简单的情况可能仅仅涉及读取或写入文件,但有时需要更复杂的操作。也许您需要显示目录中特定类型的所有文件,找到...
阅读 13 分钟
Apriori 算法是一种机器学习算法,用于理解各种产品之间的关系模式。该算法最流行的用途是根据用户购物车中已有的商品来推荐商品。沃尔玛特别使用了该算法...
5 分钟阅读
企业在全球范围内使用 Python 构建 Web 应用程序、分析数据、通过 DevOps 自动化操作以及构建可靠、可扩展的企业应用程序。Python.org 的维基上列出了大量使用 Python 的公司,Real Python 的博客上也有许多主要由 Python 驱动的公司的完整介绍。无论是用于...
阅读 8 分钟
在学习 Python 及其基础知识时,我们都一定听说过 Python 是最受欢迎的编程语言之一,市场上对 Python 的需求与日俱增。这背后的原因也不难理解...
7 分钟阅读
NumPy 库用于在 Python 中创建白色空白图像的数字表示,以创建白色图像。此操作通常用作各种图像处理任务的起点,或作为创建图形和插图的画布。NumPy,缩写为...
阅读 3 分钟
什么是 Selenium 模块?Selenium 是 Python 提供的一个用于自动化测试的模块。它提供了一个易于使用的 API,借助 Selenium 驱动程序可以进行不同的功能测试。Selenium 是一个开源的 Python 框架,它提供了用于使用 Selenium 编写功能测试的 API……
阅读 2 分钟
接下来是一个抽象的理论语法,用于定义 DOT 语言的特性。终结符以醒目的文本样式显示,非终结符以斜体显示。确切的字符用单引号给出。括号(和)在需要时表示分组。方括号 [ 和 ] 包含...
阅读 6 分钟
元音和辅音基础 在英语中,有 26 个字母,其中 a、e、i、o 和 u 被认为是元音,其余的被认为是辅音。在本文中,我们将使用不同的方法来检查给定的字符是元音...
11 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India