c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python中的梯度提升(GBM)算法实例

更新时间:2023-11-15

前言

梯度提升(Gradient Boosting Machine, GBM)是一种集成学习算法,通过迭代地构建多个弱分类器来增加模型的准确性。在Python中,有多个库提供了 GBM 的实现,如scikit-learn、XGBoost和LightGBM。在本篇回答中,我们将以Python的scikit-learn库为例,介绍 GBM 算法的实例。

算法实例

为了演示 GBM 算法的实例,我们将使用一个经典的示例数据集:波士顿房价数据集。我们的目标是建立一个能够预测波士顿地区房价的模型。首先,我们需要加载数据集。scikit-learn提供了许多流行的数据集,包括波士顿房价数据集。 ```python from sklearn.datasets import load_boston boston = load_boston() ``` 数据集加载完成后,我们可以查看数据集的信息: ```python print(boston.DESCR) ``` 接下来,我们将数据集划分为输入特征值X和目标变量y,并将其分为训练集和测试集。我们使用训练集来训练 GBM 模型,并使用测试集来评估模型的性能。 ```python from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=0) ``` 完成数据集的划分后,我们可以使用 scikit-learn 中的 GradientBoostingRegressor 类来构建 GBM 模型。我们需要指定一些超参数,如学习率(learning rate)、迭代次数(n_estimators)等。 ```python from sklearn.ensemble import GradientBoostingRegressor gbm = GradientBoostingRegressor(learning_rate=0.1, n_estimators=100, random_state=0) gbm.fit(X_train, y_train) ``` 模型训练完成后,我们可以使用测试集来评估模型的性能。常用的评估指标包括均方误差(Mean Squared Error, MSE)和决定系数(R-Squared)。 ```python from sklearn.metrics import mean_squared_error, r2_score y_pred = gbm.predict(X_test) mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print(f"MSE: {mse:.2f}") print(f"R-Squared: {r2:.2f}") ```

总结

在本篇回答中,我们以 Python 的 scikit-learn 库为例,介绍了梯度提升(GBM)算法的实例。我们使用了波士顿房价数据集作为示例数据集,展示了 GBM 模型的建立和评估过程。通过迭代地构建多个弱分类器,GBM 可以逐步减小误差,提升模型的准确性。GBM 在回归和分类问题中都有广泛的应用,是一种强大的机器学习算法。通过使用合适的超参数调整和特征工程,可以进一步优化 GBM 模型的性能。