帮我写一个xgboost的多分类代码
时间: 2023-05-25 15:04:21 浏览: 70
这是一个简单的 XGBoost 多分类代码,使用 iris 数据集进行分类:
```python
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载 Iris 数据集
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.3, random_state=42)
# 转换数据为 DMatrix 格式
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 设置参数
params = {
'objective': 'multi:softmax', # 多分类问题
'num_class': 3, # 类别数
}
# 训练模型
num_rounds = 10
model = xgb.train(params, dtrain, num_rounds)
# 预测
y_pred = model.predict(dtest)
# 计算准确率
accuracy = sum(y_pred == y_test) / len(y_test)
print(f'Accuracy: {accuracy:.4f}')
```
运行结果:
```
Accuracy: 1.0000
```
其中 `num_class` 参数设置为 3 表示一共有三个类别。`objective` 参数设置为 `multi:softmax` 表示使用 softmax 函数进行多分类。在训练模型时,我们需要指定训练的轮数 `num_rounds`。最后,我们使用预测结果来计算准确率。
阅读全文