Machine Learning 简明教程

Machine Learning - Gradient Boosting

梯度提升机 (GBM) 是广泛用于构建预测模型的强大机器学习技术。它是一种集成方法,它结合了多个较弱模型的预测以创建更强大且更准确的模型。

GBM 是许多应用(包括回归、分类和排名问题)的流行选择。让我们了解 GBM 的工作原理以及如何在机器学习中使用它。

What is a Gradient Boosting Machine (GBM)?

GBM 是一种迭代机器学习算法,它结合了多个决策树的预测来做出最终预测。

该算法通过训练一系列决策树来工作,每棵决策树都旨在纠正前一棵决策树的错误。

在每次迭代中,该算法都会识别数据集中最难预测的样本并专注于提高模型在这些样本上的性能。

这是通过拟合一棵旨在减少困难样本错误的新决策树来实现的。该过程将持续进行,直到达到指定的停止条件,例如达到一定的准确性水平或达到最大迭代次数。

How Does a Gradient Boosting Machine Work?

训练 GBM 模型涉及的基本步骤如下 −

  1. Initialize the model − 该算法从创建一个简单模型(如单决策树)开始,作为初始模型。

  2. Calculate residuals − 初始模型用于对训练数据进行预测,残差计算为预测值与实际值之间的差值。

  3. Train a new model − 在残差上训练一颗新的决策树,目标是最大程度地减少困难样本上的错误。

  4. Update the model − 新模型的预测被添加到以前模型的预测中,并基于更新的预测重新计算残差。

  5. Repeat − 第 3-4 步重复,直至满足指定的停止条件。

GBM 可以通过引入正则化技术来进一步提升,例如 L1 和 L2 正则化,以防止过拟合。此外,GBM 可以扩展为处理类别式变量、缺失数据和多类分类问题。

Example

以下是一个使用 Sklearn 乳腺癌数据集实现 GBM 的示例 −

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score

# Load the breast cancer dataset
data = load_breast_cancer()
X = data.data
y = data.target

# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Train the model using GradientBoostingClassifier
model = GradientBoostingClassifier(n_estimators=100, max_depth=3, learning_rate=0.1)
model.fit(X_train, y_train)

# Make predictions on the testing set
y_pred = model.predict(X_test)

# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

Output

在此示例中,我们使用 Sklearn 的 load_breast_cancer 函数加载乳腺癌数据集,并将其分为训练集和测试集。然后,我们使用 GradientBoostingClassifier 定义 GBM 模型的参数,包括估计器数量(即决策树数量)、每个决策树的最大深度和学习率。

我们使用 fit 方法训练 GBM 模型,并使用 predict 方法对测试集做出预测。最后,我们使用 Sklearn 的 metrics 模块中的 accuracy_score 函数评估模型的准确度。

执行此代码时,将生成以下输出 −

Accuracy: 0.956140350877193

Advantages of Using Gradient Boosting Machines

在机器学习中使用 GBM 有几个优点 −

  1. High accuracy − GBM 以其高准确度而闻名,因为它结合了多个较弱模型的预测来创建一个更强、更准确的模型。

  2. Robustness − GBM 对异常值和噪声数据具有鲁棒性,因为它专注于提高模型对最困难样本的性能。

  3. Flexibility − GBM 可用于各种应用,包括回归、分类和排名问题。

  4. Interpretability − GBM 提供有关不同特征在做出预测中的重要性的见解,这有助于理解推动预测的底层因素。

  5. Scalability − GBM 可以处理大型数据集,并且可以并行化以加速训练过程。

Limitations of Gradient Boosting Machines

在机器学习中使用 GBM 也有某些限制 −

  1. Training time − GBM 可能在计算上很昂贵,并且可能需要大量训练时间,特别是在使用大型数据集时。

  2. Hyperparameter tuning − GBM 需要仔细调整超参数,例如学习率、树木数量和最大深度,以达到最佳性能。

  3. Black box model − GBM 可能难以解释,因为最终模型是多个决策树的组合,并且可能无法清晰地洞察推动预测的底层因素。