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 模型涉及的基本步骤如下 −
-
Initialize the model − 该算法从创建一个简单模型(如单决策树)开始,作为初始模型。
-
Calculate residuals − 初始模型用于对训练数据进行预测,残差计算为预测值与实际值之间的差值。
-
Train a new model − 在残差上训练一颗新的决策树,目标是最大程度地减少困难样本上的错误。
-
Update the model − 新模型的预测被添加到以前模型的预测中,并基于更新的预测重新计算残差。
-
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)
Advantages of Using Gradient Boosting Machines
在机器学习中使用 GBM 有几个优点 −
-
High accuracy − GBM 以其高准确度而闻名,因为它结合了多个较弱模型的预测来创建一个更强、更准确的模型。
-
Robustness − GBM 对异常值和噪声数据具有鲁棒性,因为它专注于提高模型对最困难样本的性能。
-
Flexibility − GBM 可用于各种应用,包括回归、分类和排名问题。
-
Interpretability − GBM 提供有关不同特征在做出预测中的重要性的见解,这有助于理解推动预测的底层因素。
-
Scalability − GBM 可以处理大型数据集,并且可以并行化以加速训练过程。