GrandientBoostingClassifier函数介绍

目录

  • 前言
  • 用法
  • 示例

前言

GradientBoostingClassifier 是 Scikit-learn 库中的一个分类器,用于实现梯度提升决策树(Gradient Boosting Decision Trees,GBDT)算法。GBDT 是一种强大的集成学习方法,能够通过逐步构建一系列简单的决策树(通常是浅树)来提高模型的预测性能。它在多个机器学习竞赛中表现出色,是用于分类和回归任务的流行选择。

用法

from sklearn.ensemble import GradientBoostingClassifier

# 创建 GradientBoostingClassifier
clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

参数

n_estimators: 弱学习器(决策树)的数量。默认是 100。增大这个数字可能提升性能但也可能导致过拟合。
learning_rate: 每个树对最终输出的贡献比例。默认是 0.1。降低该值需要更多树来拟合训练集。
max_depth: 每个回归估算器的最大深度。增加此值可能导致模型更复杂。
subsample: 每棵树拟合时所使用的样本比例。默认是 1.0,即所有样本。使用小于 1.0 的值可引入模型正则化。
min_samples_split 和 min_samples_leaf: 控制决策树划分的最小样本数,默认值为 2 和 1。
max_features: 寻找最佳分割时考虑的特征数。可以为整数、浮点数、字符串 “auto” 或 “sqrt”/“log2”。
random_state: 对随机数生成的种子进行控制,保证结果可重复。
criterion: 用于衡量分裂质量(信息增益)的函数。默认是 friedman_mse。

属性
feature_importances_: 提供特征重要性得分。
oob_improvement_: 带有每步提升的 OOB 得分改进。

方法
fit(X, y): 拟合模型。
predict(X): 在测试集上进行预测。
predict_proba(X): 返回预测类的概率估计。

示例

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

# 加载数据
iris = load_iris()
X, y = iris.data, iris.target

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建 GradientBoostingClassifier
clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

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

# 预测
y_pred = clf.predict(X_test)

# 评估准确率
print("Accuracy:", accuracy_score(y_test, y_pred))

结果如下:
Accuracy: 1.0

你可能感兴趣的:(#,机器学习,算法,GBDT)