SVM网格搜索法参数寻优,每一个组合验证完毕立刻输出评分python
时间: 2023-07-13 09:14:56 浏览: 110
SVM参数寻优
好的,针对您的问题,以下是一个使用Python进行SVM网格搜索的示例代码,包括了每一个组合验证完毕立刻输出评分的功能。
首先,我们需要导入相关的库,并加载数据集:
```
from sklearn import datasets
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.svm import SVC
# 加载数据集
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.3, random_state=0)
```
接下来,我们定义一个SVM分类器,并设置需要搜索的参数范围:
```
# 定义SVM分类器
svm = SVC()
# 设置需要搜索的参数范围
param_grid = {'C': [0.1, 1, 10, 100],
'gamma': [0.1, 1, 10, 100],
'kernel': ['linear', 'rbf', 'sigmoid']}
```
然后,我们使用GridSearchCV进行网格搜索,并在每一个组合验证完毕后输出评分:
```
# 使用GridSearchCV进行网格搜索
grid_search = GridSearchCV(svm, param_grid, cv=5)
for i, params in enumerate(grid_search.param_grid):
print(f"Testing combination {i+1}/{len(grid_search.param_grid)}: {params}")
grid_search.fit(X_train, y_train)
print(f"Score: {grid_search.best_score_:.3f}\n")
```
在以上代码中,我们使用enumerate函数遍历每一个参数组合,并在每一个组合验证完毕后输出评分。其中,grid_search.best_score_表示当前最优的交叉验证分数。
阅读全文