机器学习-GBDT实例

以下是一个使用梯度提升决策树(Gradient Boosting Decision Trees, GBDT)进行分类的简单例子。我们将使用 Python 中的 scikit-learn 库,并使用经典的鸢尾花(Iris)数据集。

代码实现:

# 导入库
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X = iris.data  # 特征
y = iris.target  # 标签

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建 Gradient Boosting 分类器
gbdt_classifier = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

# 训练 GBDT 模型
gbdt_classifier.fit(X_train, y_train)

# 进行预测
y_pred = gbdt_classifier.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"GBDT 模型的准确率: {accuracy:.2f}")

代码说明:

  1. 数据集加载

    • 使用 load_iris() 函数加载鸢尾花数据集,这是一种常用的分类数据集,包括 150 个样本、4 个特征和 3 个类别。
  2. 数据集划分

    • 使用 train_test_split 将数据集划分为训练集(80%)和测试集(20%)。
  3. 创建 GBDT 分类器

    • GradientBoostingClassifierscikit-learn 中实现的梯度提升分类器。
    • n_estimators=100:设置使用 100 个弱分类器(决策树)。
    • learning_rate=0.1:设置每个分类器的学习率,这影响每个分类器对最终结果的贡献。
    • max_depth=3:限制每个决策树的最大深度,控制模型的复杂度,防止过拟合。
  4. 训练和预测

    • 通过 fit 方法训练 GBDT 模型。
    • 使用 predict 方法对测试集进行预测。
  5. 模型评估

    • 使用 accuracy_score 计算模型的准确率。

结果:

最终会输出模型在测试集上的准确率,例如:

GBDT 模型的准确率: 0.97

这个结果表明,GBDT 模型在鸢尾花数据集的测试集上表现良好。GBDT 通过逐步优化损失函数,能够高效地进行分类,并且在多个任务中具有很好的性能。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值