使用gbdt算法建模的完整实例
时间: 2024-09-25 17:19:14 浏览: 52
机器学习十大算法,完整集合
5星 · 资源好评率100%
GBDT(Gradient Boosting Decision Tree),即梯度提升决策树,是一种集成学习方法,常用于回归和分类任务。下面是使用Python库XGBoost(eXtreme Gradient Boosting)构建GBDT模型的一个简单实例:
首先,确保已经安装了`xgboost`库,如果没有,可以使用pip安装:
```bash
pip install xgboost
```
接着,我们假设有如下数据集(这里仅给出伪代码示例):
```python
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载样本数据
data = load_iris()
X = data.data
y = data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
现在我们可以开始建立模型:
```python
import xgboost as xgb
# 定义参数
param = {
'objective': 'multi:softmax', # 对于分类问题
'num_class': len(data.target_names), # 类别的数量
'booster': 'gbtree', # 使用GBDT
'eta': 0.1, # 学习率
'max_depth': 3, # 决策树的最大深度
'n_estimators': 100, # 树的数量(迭代次数)
}
# 创建DMatrix,它是XGBoost的内置数据结构
dtrain = xgb.DMatrix(X_train, label=y_train)
# 训练模型
model = xgb.train(param, dtrain, num_boost_round=100) # 可视化训练过程
```
模型训练完成后,可以进行预测:
```python
dtest = xgb.DMatrix(X_test)
y_pred = model.predict(dtest)
```
最后,评估模型性能:
```python
from sklearn.metrics import accuracy_score, classification_report
accuracy = accuracy_score(y_test, y_pred.argmax(axis=1))
print("Accuracy:", accuracy)
report = classification_report(y_test, y_pred.argmax(axis=1), target_names=data.target_names)
print("\nClassification Report:\n", report)
```
阅读全文