xgboost进行三分类预测的Python代码
时间: 2024-01-02 20:03:53 浏览: 70
以下是使用XGBoost进行三分类预测的Python代码示例:
```python
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载Iris数据集
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.2, random_state=42)
# 将y转换为类别标签
num_class = len(set(y))
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 设置XGBoost参数
params = {
'objective': 'multi:softmax',
'num_class': num_class,
'max_depth': 3,
'eta': 0.1,
'gamma': 0.1,
'subsample': 0.8,
'colsample_bytree': 0.8,
'eval_metric': 'merror',
'seed': 42
}
# 训练模型
num_rounds = 100
model = xgb.train(params, dtrain, num_rounds)
# 在测试集上进行预测
y_pred = model.predict(dtest)
# 打印准确率
accuracy = sum(y_pred == y_test) / len(y_test)
print("Accuracy: {:.2f}%".format(accuracy * 100))
```
在这个例子中,我们使用了XGBoost库来训练和测试一个三分类模型。首先,我们加载了Iris数据集并将其划分为训练集和测试集。然后,我们使用`xgb.DMatrix`函数将数据集转换为XGBoost需要的格式,并将标签转换为类别标签。接下来,我们设置了XGBoost的参数,并使用`xgb.train`函数训练了一个模型。最后,我们在测试集上进行了预测,并打印了准确率。
阅读全文