python网格搜索代码
时间: 2025-01-07 11:41:59 浏览: 0
### Python 中实现网格搜索的代码示例
在Python中,`sklearn.model_selection.GridSearchCV` 是一个非常流行的库函数,用于执行网格搜索来优化模型超参数。下面是一个完整的例子,展示了如何使用 `GridSearchCV` 来寻找支持向量机 (SVM) 的最优参数配置。
#### 导入必要的库
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
import pandas as pd
```
#### 加载并预处理数据集
为了简化说明过程,这里选择了经典的鸢尾花(Iris) 数据集作为示范对象。
```python
# 加载Iris数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 特征缩放
scaler = StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
```
#### 定义参数网格
定义要探索的不同参数值组合。
```python
param_grid = {
'C': [0.1, 1, 10],
'kernel': ['linear', 'rbf'],
'gamma': ['scale', 'auto']
}
```
#### 创建并拟合网格搜索器
创建基于交叉验证的支持向量分类器,并对其进行训练以找到最佳参数设置。
```python
grid_search = GridSearchCV(SVC(), param_grid, cv=5)
grid_search.fit(X_train_scaled, y_train)
```
#### 输出结果
最后打印出最佳得分以及对应的最佳参数。
```python
print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))
print("Best parameters: ", grid_search.best_params_)
```
通过上述代码片段,可以有效地利用网格搜索技术,在指定范围内自动调整和支持向量机模型的关键参数,从而提高预测性能[^1]。
阅读全文