支持向量机调优案例代码
时间: 2023-10-04 22:13:49 浏览: 51
以下是一个基于Python和Scikit-learn的支持向量机调优案例代码:
```python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.svm import SVC
# 加载数据
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3, random_state=42)
# 定义参数范围
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.001, 0.01, 0.1, 1], 'kernel': ['linear', 'rbf']}
# 定义SVM模型
svm = SVC()
# 网格搜索
grid_search = GridSearchCV(svm, param_grid, cv=5, scoring='accuracy')
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_))
# 用最优参数训练模型并测试
svm = SVC(**grid_search.best_params_)
svm.fit(X_train, y_train)
print('Test accuracy: {:.2f}'.format(svm.score(X_test, y_test)))
```
以上代码使用了乳腺癌数据集,通过网格搜索来调整支持向量机的参数,包括正则化参数C、核函数类型kernel、以及核函数参数gamma。最终输出最优参数和最优得分,并用最优参数训练模型并测试,输出测试准确率。