SVM中的成本参数C是什么意思?我的意思是,如果C很大,它是否意味着“我不能容忍错误的分类”?
如何在实验中找到最佳参数时确定范围和步长?
顺便说一下,决定哪个参数更好的标准是什么?交叉验证的错误数量或我们从SVM获得的支持向量数量?
答案 0 :(得分:1)
什么是C?
SVM训练解决的优化问题有两个术语:
C只是这些与术语重要性之间的平衡。如果C很高,你会给予(2)很大的权重,如果C很低,你会给予(1)很大的权重。
如果我只是想要准确的结果,为什么我不把C设置得真高?
术语(1)防止过度拟合(非常擅长对训练数据进行分类,但在分类看不见的测试数据方面非常糟糕)
好的我只是想要准确的结果为什么我不把C设置得真的很低呢?
术语(2)确保训练优化关注训练数据,您不仅需要“简单”(在L2意义上)权重,您需要简单的权重来正确分类训练数据。
<强>概要强>
培训SVM是两个术语的平衡。 C是损失项与正则化项的相对重要性。
答案 1 :(得分:0)
-C表示如何容忍分类错误(松弛变量)。为了找到更好的模型,我想我们必须设置一个大的阈值并进行交叉验证。
答案 2 :(得分:0)
这样做吧。 SVM中的C参数是错误术语的惩罚参数。 您可以将其视为算法必须满足的正确分类程度或SVM必须满足的优化程度。
对于更高的C 值,SVM优化器无法对任何单点进行错误分类。是的,正如您所说,对于较高的C值,SVM优化器的容差很高。但对于较小的C ,SVM优化器至少允许一定程度的自由度,以满足最佳超平面!
SVC(C=1.0, kernel='rbf', degree=3, gamma='auto')
- &gt;低容忍RBF内核
SVC(C=1000.0,kernel='linear',degree=3,gamma='auto')
- &gt;高容忍线性内核
参考:http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC