继续进行超参数调优,并可视化展示
时间: 2023-12-22 20:06:41 浏览: 137
好的,以下是对XGBoost模型进行超参数调优,并可视化展示的代码示例:
```python
import xgboost as xgb
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
# 加载数据集
data = load_wine()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义XGBoost模型和超参数空间
model = xgb.XGBClassifier()
params = {
"learning_rate": [0.01, 0.1, 0.5],
"max_depth": [3, 5, 7],
"n_estimators": [50, 100, 200]
}
# 定义GridSearchCV
grid = GridSearchCV(model, params, cv=5, scoring="accuracy")
# 在训练集上进行网格搜索
grid.fit(X_train, y_train)
# 获取最优模型并在测试集上进行预测
best_model = grid.best_estimator_
y_pred = best_model.predict(X_test)
# 输出精度
acc = accuracy_score(y_test, y_pred)
print("Accuracy: %.4f" % acc)
# 可视化超参数调优结果
results = grid.cv_results_
params = results["params"]
mean_test_score = results["mean_test_score"]
x = [str(p) for p in params]
plt.bar(x, mean_test_score)
plt.xticks(rotation=90)
plt.xlabel('Parameters')
plt.ylabel('Mean Test Score')
plt.title('Hyperparameter Tuning Results')
plt.show()
```
以上代码首先加载Wine数据集,然后使用train_test_split函数将数据集划分为训练集和测试集。接着,我们定义XGBoost模型和超参数空间,并使用GridSearchCV进行超参数调优。最后,我们使用最优模型在测试集上进行预测,并输出精度。同时,我们还使用Matplotlib可视化了超参数调优的结果。
需要注意的是,超参数调优是一个非常重要的过程,可以显著提高模型的性能和泛化能力。在工作中,我们可以使用GridSearchCV、RandomizedSearchCV等工具来寻找最优的超参数组合。同时,我们还可以使用可视化工具来展示超参数调优的结果,帮助我们更好地理解模型的性能和超参数之间的关系。
阅读全文