📅  最后修改于: 2023-12-03 14:49:40.166000             🧑  作者: Mango
在机器学习中,调优模型的超参数是非常重要的一个步骤。SVM 是一种常用的分类器,它的性能很大程度上取决于超参数的选择。本文将介绍如何使用 GridSearchCV 进行 SVM 模型的超参数调优,从而提高分类器的准确率。
支持向量机(Support Vector Machine,简称 SVM)是一种常用的分类方法,它把数据集映射到高维空间中,通过构建超平面对数据进行划分。
超参数(Hyperparameters)是指机器学习算法中不同于模型参数的那些参数。超参数不是通过训练得到的,而是需要手动设置。例如,在 SVM 中,超参数包括惩罚参数 C 和核函数的类型。不同的超参数设置会影响模型的性能。
GridSearchCV 是一种超参数搜索算法,它通过遍历给定的参数组合来寻找最佳的超参数配置。在进行超参数调优时,常常使用 GridSearchCV 来搜索最佳的参数组合。
首先,我们需要导入必要的库和数据集:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.svm import SVC
# 加载数据集
data = load_breast_cancer()
X, y = data.data, data.target
接下来,我们将数据集分成训练集和测试集,并定义 SVM 模型和超参数范围:
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# 定义 SVM 模型
svm_model = SVC()
# 定义超参数范围
param_grid = {
'C': [0.1, 1, 10],
'kernel': ['linear', 'rbf']
}
在上面的代码中,我们将惩罚参数 C 取 0.1、1 和 10,核函数类型包括线性核和 RBF 核。
接下来,我们可以使用 GridSearchCV 进行超参数搜索和模型训练:
# 使用 GridSearchCV 进行超参数搜索和模型训练
grid_search = GridSearchCV(svm_model, param_grid, cv=5)
grid_search.fit(X_train, y_train)
在上面的代码中,我们使用了 5 折交叉验证来评估每个超参数组合的性能。
最后,我们可以输出最佳的超参数组合和测试集的准确率:
# 输出最佳的超参数组合和测试集的准确率
print("Best parameters: ", grid_search.best_params_)
print("Test accuracy: ", grid_search.score(X_test, y_test))
上述代码将输出最佳的超参数组合和测试集的准确率。
本文介绍了如何使用 GridSearchCV 进行 SVM 超参数调优。在实际工作中,超参数调优是模型训练的重要一环,而 GridSearchCV 的使用也是必不可少的。希望本文对大家有所帮助。