通过网格搜索,将回归模型在测试数据上的评分提高到0.85以上,输出模型采用不同超参数组合时在测试数据上的评分和均方误差
时间: 2024-03-27 16:38:28 浏览: 21
好的,下面是一个使用网格搜索调参的完整示例代码:
```python
from sklearn.linear_model import Ridge
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import mean_squared_error
# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建岭回归模型
ridge = Ridge()
# 设置超参数范围
param_grid = {
'alpha': [0.1, 1.0, 10.0, 100.0],
'fit_intercept': [True, False],
'normalize': [True, False],
}
# 使用网格搜索调参
grid_search = GridSearchCV(ridge, param_grid, cv=5, scoring='r2')
grid_search.fit(X_train, y_train)
# 输出最优参数和评分
print("Best parameters:", grid_search.best_params_)
print("Best score:", grid_search.best_score_)
# 在测试集上进行预测
y_pred = grid_search.predict(X_test)
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print("Mean squared error:", mse)
```
在这个示例中,我们首先定义了超参数的范围,包括 alpha、fit_intercept 和 normalize 三个参数。然后,我们使用 GridSearchCV 对岭回归模型进行了超参数调优。在训练完成后,我们输出了最优参数和评分,并在测试集上进行了预测和均方误差的计算。
你可以根据实际情况调整超参数范围,并使用交叉验证等技术来寻找最优的超参数组合,从而提高模型在测试数据上的评分。