基于浏览器的XGBoost:无需Jupyter或IDE即可训练模型

基于浏览器的XGBoost:无需Jupyter或IDE即可训练模型

如今,机器学习已成为金融、医疗、软件和数据科学等各行各业不可或缺的一部分。然而,要开发一个良好且有效的机器学习模型,搭建必要的环境和工具至关重要,有时也会带来诸多问题。想象一下,无需任何复杂的设置和安装,直接在浏览器中训练像 XGBoost 这样的模型。这不仅简化了流程,也让机器学习更容易被大众接受。在本文中,我们将介绍什么是基于浏览器的 XGBoost,以及如何使用它在浏览器上训练模型。

什么是XGBoost?

极限梯度提升(Extreme Gradient Boosting),简称 XGBoost,是一种可扩展且高效的梯度提升技术实现,旨在提高速度、性能和可扩展性。它是一种集成技术,结合多个弱学习器进行预测,每个学习器都在前一个学习器的基础上进行改进以纠正错误。

它是如何工作的?

XGBoost 是一种集成技术,它利用决策树、基础学习器或弱学习器,并采用正则化技术来增强模型泛化能力。这也有助于降低模型过拟合的可能性。决策树(基础学习器)采用顺序方法,使得后续的每一棵树都试图最小化前一棵树的误差。因此,每棵树都会从前一棵树的误差中学习,而下一棵树则使用前一棵树更新后的残差进行训练。

这试图通过优化损失函数来帮助纠正前一棵树的误差。这就是模型性能随着每次迭代逐步提升的方式。XGBoost 的主要特性包括:

  • 正则化
  • 树修剪
  • 并行处理

如何在浏览器中进行训练?

我们将使用 TrainXGB 在浏览器上完全训练我们的 XGBoost 模型。为此,我们将使用来自 Kaggle 的房价预测数据集。在本节中,我将指导您完成浏览器模型训练的每个步骤,选择适当的超参数,并评估训练模型的推断,所有这些都使用价格预测数据集。

XGBoost 面板

理解数据

现在让我们开始上传数据集。点击“Choose file”,然后选择要用于训练模型的数据集。应用程序允许您选择 CSV 分隔符以避免任何错误。打开您的 CSV 文件,检查特征或列的分隔方式,然后选择一个。否则,如果选择其他分隔符,则会显示错误。

检查数据集特征之间的相互关系后,只需点击“Show Dataset Description”。它将快速汇总数据集数值列中的重要统计数据。它提供诸如平均值、标准差(显示数据的分布)、最小值和最大值以及 25%、50% 和 75% 百分位数等值。点击后,它将执行 describe 方法。

XGBoost 导入训练数据

选择训练集-测试集拆分的特征

成功上传数据后,点击“Configuration”按钮,进入下一步,我们将选择训练集的重要特征和目标特征(我们希望模型预测的内容)。本数据集的目标特征是“Price”,因此我们选择它。

选择训练集-测试集拆分的特征

设置超参数

接下来,选择模型类型,无论是分类器还是回归器。这完全取决于你选择的数据集。检查你的目标列是连续值还是离散值。如果是离散值,则为分类问题;如果是连续值,则为回归问题。

根据所选的模型类型,我们还将选择评估指标,这将有助于最大限度地降低损失。在我的例子中,我需要预测房价,所以这是一个连续问题,因此我选择了 RMSE 最低的回归器。

此外,我们可以通过选择超参数来控制 XGBoost 树的生长方式。这些超参数包括:

  • 树方法:在树方法中,我们可以选择 hist、auto、exact、approx 和 gpu_hist。我使用了 hist,因为它在处理大型数据集时速度更快、效率更高。
  • 最大深度:设置每棵决策树的最大深度。数值越大,树可以学习更复杂的模式,但数值不宜过大,否则容易导致过拟合。
  • 树数:默认值为 100。它表示用于训练模型的树的数量。理想情况下,树越多可以提高模型的性能,但训练速度也会越慢。
  • 子样本:它是输入到每棵树的训练数据的比例。如果为 1,则表示所有行,因此最好保持较低的值以减少过拟合的可能性。
  • Eta:代表学习率,它控制模型在每一步的学习量。值越低,速度越慢,但准确性也越高。
  • Colsample_bytree/bylevel/bynode:这些参数用于在树生长过程中随机选择列。较低的值会引入随机性,有助于防止过拟合。

设置超参数

训练模型

设置好超参数后,下一步就是训练模型。为此,请前往“Training & Results”,然后点击“Train XGBoost”,即可开始训练。

训练模型

它还会显示实时图表,以便您实时监控模型训练的进度。

实时监控模型训练的进度

训练完成后,您可以下载训练好的权重,并在本地使用。它还会以条形图的形式展示训练过程中最有帮助的特征。

下载训练好的权重

检查模型在测试数据上的性能

现在,我们已经对模型进行了训练并基于数据进行了微调。接下来,让我们尝试使用测试数据来查看模型的性能。为此,请上传测试数据并选择目标列。

上传测试数据并选择目标列

现在,点击“Run inference”即可查看模型在测试数据上的性能。

查看模型在测试数据上的性能

小结

过去,构建机器学习模型需要手动设置环境和编写代码。但现在,像 TrainXGB 这样的工具彻底改变了这一切。在这里,我们无需编写任何代码,因为一切都在浏览器中运行。像 TrainXGB 这样的平台让这一切变得非常简单,我们可以上传真实数据集、设置超参数并评估模型的性能。这种向基于浏览器的机器学习的转变,让更多人能够学习和测试,而无需担心设置问题。然而,这仅限于某些模型,但未来,新的平台可能会带来更强大的算法和功能。

评论留言