支持向量机:超参数调优、数据归一化与面部识别应用
1. 超参数调优
在支持向量机(SVM)的应用中,一开始很难确定哪个内置核函数能产生最准确的模型,也难以知晓参数 C 的最佳值。C 控制着模型对训练数据的拟合程度,值越高,拟合越紧密,但过拟合风险也越高。对于径向基函数(RBF)和多项式核函数,还有一个影响准确性的参数 gamma。gamma 控制着单个数据点在计算决策边界时的影响范围,较低的值使用更多的点,产生更平滑的决策边界;较高的值涉及更少的点,更紧密地拟合训练数据。对于多项式核函数,degree 参数会影响模型从训练数据中学习的能力。
为了找到能产生最准确模型的参数组合,数据科学家会进行超参数调优。Scikit 提供了一系列优化器,其中 GridSearchCV 会尝试指定参数值的所有组合,并通过内置的交叉验证来确定最佳组合。以下是一个使用 Scikit 的 SVC 类实现 SVM 分类器的示例:
# 使用默认参数值创建 SVM 分类器
model = SVC()
model.fit(x, y)
# 指定核类型和 C、gamma 值
model = SVC(kernel='poly', C=10, gamma=0.1)
model.fit(x, y)
# 使用 GridSearchCV 尝试不同的核和参数值
model = SVC()
grid = {
'C': [0.01, 0.1, 1, 10, 100],
'gamma': [0.01, 0.25, 0.5, 0.75, 1.0],
'kernel': ['rbf', 'poly']
}
grid_search = GridSea
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



