请利用Python搭建一个XGBoost模型,以实现鸢尾花数据集分类任务
时间: 2024-04-18 16:28:41 浏览: 107
当然可以!以下是使用Python搭建XGBoost模型进行鸢尾花数据集分类任务的示例代码:
```python
# 导入所需库
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
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)
# 定义模型参数
params = {
'objective': 'multi:softmax', # 多分类问题
'num_class': 3, # 类别数量
'max_depth': 3, # 决策树最大深度
'eta': 0.1, # 学习率
'subsample': 0.7, # 随机采样训练样本
'colsample_bytree': 0.7, # 随机采样特征
'seed': 42 # 随机种子
}
# 将数据转换为DMatrix格式
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test)
# 训练模型
model = xgb.train(params, dtrain)
# 预测
y_pred = model.predict(dtest)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
```
这段代码首先导入了所需的库,然后加载鸢尾花数据集并划分为训练集和测试集。接下来,定义了XGBoost模型的参数,包括目标函数、类别数量、决策树最大深度、学习率等。然后,将训练集数据转换为DMatrix格式,用于训练模型。训练完成后,使用测试集数据进行预测,并计算准确率。
注意:在运行代码之前,请确保已经安装了XGBoost库和Scikit-learn库。
阅读全文