支持向量机 结合网络搜索调优 案例代码
时间: 2023-10-05 10:05:28 浏览: 36
以下是一个使用网格搜索调优支持向量机模型的案例代码。假设我们要对一个二分类问题进行建模,数据集已经加载并划分为训练集和测试集,我们想要调优SVM模型的C和gamma两个超参数。
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
# 加载数据集
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=42)
# 定义需要调优的超参数的范围
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 1, 10, 100]}
# 定义支持向量机模型
svm = SVC(kernel='rbf')
# 使用网格搜索进行调优
grid_search = GridSearchCV(svm, param_grid=param_grid, cv=5)
grid_search.fit(X_train, y_train)
# 输出最优的超参数组合和对应的模型性能
print("Best parameters: {}".format(grid_search.best_params_))
print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))
print("Test set score: {:.2f}".format(grid_search.score(X_test, y_test)))
```
在这个例子中,我们首先加载了iris数据集,并将其划分为训练集和测试集。然后,我们定义了需要调优的超参数的范围,并使用GridSearchCV函数进行网格搜索调优。最后,我们输出了最优的超参数组合和对应的模型性能。需要注意的是,在使用GridSearchCV函数时,我们还指定了交叉验证的折数为5。