Python 中的 XGBoost ML 模型2024年8月29日 | 阅读 8 分钟 XGBoost 库实现了梯度提升决策树,旨在提高速度和执行效率,这是机器学习 (ML) 中最重要的方面。 XgBoost:Python 的 XgBoost (Extreme Gradient Boosting) 库由华盛顿大学的学者推出。它是用 C++ 编写的 Python 模块,通过梯度提升训练来帮助机器学习模型算法。 梯度提升:这是一种人工智能方法,用于分类和回归任务等。它将预测模型呈现为弱预测模型(通常称为决策树)的集合。 基础梯度提升是如何工作的?
在本教程中,您将了解如何安装和构建您的第一个 Python XGBoost 模型。 XGBoost 可以提供比其他机器学习模型算法更好的解决方案。事实上,自推出以来,它已成为处理结构化数据的“最先进”的机器学习模型算法。 是什么让 XGBoost 如此受欢迎?
XGBoost (Extreme Gradient Boosting) 属于一类集成算法,并以梯度提升 (GBM) 框架为核心。 本教程的成果
分步方法
步骤 1:在 Python 中安装 XGBoost如果我们在 SciPy 环境中工作,可以使用 pip 轻松地在 Python 中安装 XGBoost。 例如 安装命令 更新 XGBoost 命令 安装 XGBoost 的另一种方法是运行最新的 GitHub 代码,这需要您克隆 XGBoost 项目并执行手动构建和安装。 例如,要在 Mac OS X 上构建不带多线程的 XGBoost(已通过 MacPorts 或自制 libtool 安装 GCC),我们可以输入 步骤 2:问题描述本教程将使用 Pima 印第安人糖尿病发病率数据集。 该数据集1 包含 8 个描述患者临床细节的数据变量和一个结果变量,用于指示患者是否将在 5 年或更短的时间内出现糖尿病。 这对于第一个 XGBoost 模型来说是一个不错的数据集1,因为所有数据变量都是数值型的,而且问题是一个简单的二元分类问题。对于 XGBoost 算法来说,这不是一个好问题,因为数据集1 相对较小,问题也比较简单。 下载此数据集1 并将其放入当前工作目录中,文件名为“pima-Indians--diabetes.CSV”。
步骤 3:加载和准备数据在本节中,我们将从文件中加载数据并准备好以用于训练和评估 XGBoost 模型。 准备机器学习模型的过程包括向机器学习算法(即学习算法)提供训练数据以供学习。训练数据应包含正确答案,这被称为目标变量或目标属性。 我们将从导入本教程中需要使用的类和函数开始。 例如 说明 接下来,使用 NumPy 的 `genfromtxt` 函数将 CSV 文件加载为 NumPy 数组。 现在,通过指定列的索引,使用 NumPy 格式将列(特征或属性)分离为 (Y) 输出模式和 (X) 输入模式。 最后,我们应该将其拆分为测试集和训练集。训练集将用于准备 XGBoost 模型,而测试集将用于进行新预测,我们可以从中评估模型的性能。 我们将使用 scikit-learn 库中的 `train_test_split()` 函数。我们还指定随机数生成器的种子,以便每次执行此模型时都能获得相同的数据分割。 步骤 4:训练 XGBoost 模型说明 XGBoost 提供了一个包装器类,允许模型在 scikit-learn 框架中被视为分类器或回归器。 这意味着 XGBoost 模型可以完全利用 scikit-learn 库。 对于分类,XGBoost 模型称为 `XGBClassifier`。我们可以创建它并将其拟合到我们的训练数据集。模型使用 scikit-learn API 和 `model.fit()` 函数进行拟合。 为了训练模型,可以在构造函数的参数列表中传递参数。所以这里,我们使用合理的默认值。此外,通过打印模型,我们可以观察到训练好的 XGBoost 模型的信息。 例如 步骤 5:使用 XGBoost 模型进行预测我们可以在测试数据集上使用已拟合的模型进行预测。 例如 说明 我们使用 scikit-learn 函数 `model.predict()` 进行预测。 由于这是一个二元分类问题,每次预测都是数据模式属于正类的概率。默认情况下,XGBoost 模型做出的预测是准确的概率。通过将它们四舍五入到 1 或 0,我们可以轻松地将它们转换为二元类别值。 现在,要对数据进行预测,需要使用已拟合的模型。为了确定预测的效率,将预测值与实际值进行比较。使用 scikit-learn 库的 `accuracy_score()` 函数来查找准确率。 步骤 6:整合所有前面的步骤源代码 注意:鉴于评估系统或算法的性质以及数学结果精度上的差异,结果可能会有所不同。我们可以多次运行模型并找出平均结果。输出 运行此模型会产生以下结果。 Accuracy = 77.95% 考虑到模型的性能和问题的内在复杂性,我们在该问题上获得了不错的准确率得分,这是我们所期望的。 结论在这篇文章中,您了解了如何在 Python 中开发您的第一个 XGBoost 模型。 具体来说,您学会了
|
有时 Web 应用程序需要使用 Python 语言在一个函数中显示两个值。这对于复杂功能、数学运算和数据库信息的显示是必要的。Python 提供了多种方法来返回两个值。使用对象 使用元组 使用列表 使用数据类 使用字典 使用对象 它...
5 分钟阅读
我们很可能在生活中遇到过很多次,我们想知道目录(文件夹)中有多少文件以及有哪些文件。或者,有时我们必须寻找一个文件,我们知道它的名字,但是...
7 分钟阅读
数据科学家在处理机器学习模型时可以从交叉验证中受益匪浅:它可以帮助最大程度地减少所需数据量并确保机器学习模型可靠。交叉验证以牺牲资源使用为代价来实现这一目标;因此,关键在于...
阅读 16 分钟
用户调用析构函数来销毁对象。在 Python 中,开发人员可能不像在 C++ 语言中那样需要析构函数。这是因为 Python 有一个垃圾收集器,其功能是自动处理内存管理。在本文中,我们将讨论...
阅读 3 分钟
在本教程中,我们将了解 Python 当前的 Google 搜索包。我们将探索最常用的 Google 搜索库的用法。我们还将学习如何使用 Python 代码在 Google 上进行搜索查询。Python 为 Google 搜索提供了许多库,...
阅读 4 分钟
在本教程中,我们将编写 Python 程序来查找列表中只出现一次的元素。我们给定一个包含整数值的列表,其中所有数字都出现两次,只有一个数字出现一次。我们需要找到那个唯一的数字……
阅读 6 分钟
break 是 Python 中循环的控制语句。它用于管理循环的顺序。假设我们想结束一个循环并继续执行后面的代码;break 可以帮助我们做到这一点。当一个...
阅读 2 分钟
如果给定单链表的头部和数字 K,开发一个程序,从最后一个节点开始,将链表顺时针旋转 K 个位置。示例输入-1 头部:10 -> 20 -> 30 -> 40 -> 50 K:2 输出 1:40 -> 50 -> 10 ->...
7 分钟阅读
在下面的教程中,我们将了解如何借助 Python 编程语言创建身体质量指数 (BMI) 计算器。但在开始创建之前;让我们简要讨论一下身体质量指数 (BMI) 是什么。了解身体质量指数 (BMI) BMI,简称...
阅读 4 分钟
在本教程中,我们将编写 Python 程序来解决图像(矩阵)的旋转问题。这是一个与矩阵相关的问题。让我们了解一下问题陈述。问题陈述:一个 nxn 的 2D 矩阵代表一个图像。我们需要将图像顺时针旋转 90 度....
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India