7 个 XGBoost 技巧,实现更准确的预测模型

7 个 Python 技巧,可能有助于充分利用独立的 XGBoost 库,特别是在寻求更准确的预测模型方面。

来源:KDnuggets

简介

像 XGBoost(极端梯度提升)这样的集成方法是梯度提升决策树的强大实现,可以将几个较弱的估计器聚合成一个强大的预测模型。这些集成由于其准确性、效率以及对结构化(表格)数据的强大性能而非常受欢迎。虽然广泛使用的机器学习库 scikit-learn 不提供 XGBoost 的本机实现,但有一个单独的库(恰当地称为 XGBoost),它提供与 scikit-learn 兼容的 API。

您需要做的就是按如下方式导入它:

来自 xgboost 导入 XGBClassifier

下面,我们概述了 7 个 Python 技巧,可以帮助您充分利用 XGBoost 的独立实现,特别是在旨在构建更准确的预测模型时。

为了说明这些技巧,我们将使用 scikit-learn 中免费提供的乳腺癌数据集,并使用大部分默认设置定义基线模型。在尝试以下七个技巧之前,请务必先运行此代码:

将 numpy 导入为 np

从 sklearn.datasets 导入 load_breast_cancer

从 sklearn.model_selection 导入 train_test_split,GridSearchCV

从 sklearn.metrics 导入 precision_score

从 xgboost 导入 XGBClassifier# 数据X, y = load_breast_cancer(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X、y、test_size=0.2、random_state=42)# 基线模型模型 = XGBClassifier(eval_metric="logloss", random_state=42)model.fit(X_train, y_train)print("基线准确度:", precision_score(y_test, model.predict(X_test)))1. 调整学习率和估计器数量虽然不是通用规则,但显式降低学习率同时增加 XGBoost 集成中估计器(树)的数量通常可以提高准确性。较小的学习率允许模型更加逐步地学习,而额外的树则可以补偿减小的步长。2.调整树的最大深度总结