gpt4 book ai didi

machine-learning - 什么时候应该使用 LinearSVC 或 SVC?

转载 作者:行者123 更新时间:2023-11-30 08:21:32 25 4
gpt4 key购买 nike

根据我的研究,我发现了三个相互矛盾的结果:

  1. SVC(kernel="linear") is better
  2. LinearSVC is better
  3. Doesn't matter

有人可以解释何时使用 LinearSVCSVC(kernel="linear") 吗?

看起来 LinearSVC 比 SVC 稍微好一些,而且通常更挑剔。但是,如果 scikit 决定花时间实现线性分类的特定案例,为什么 LinearSVC 不会优于 SVC

最佳答案

从数学上来说,优化 SVM 是一个凸优化问题,通常具有唯一的最小化器。这意味着这个数学优化问题只有一个解。

结果的差异来自几个方面:SVCLinearSVC 应该优化同一问题,但实际上所有 liblinear 估计器对拦截进行惩罚,而 libsvm 则不会(IIRC)。这会导致不同的数学优化问题,从而导致不同的结果。还可能存在其他细微差别,例如缩放和默认损失函数(编辑:确保在 LinearSVC 中设置 loss='hinge')。接下来,在多类分类中,liblinear 默认执行一对一,而 libsvm 默认执行一对一。

SGDClassifier(loss='hinge') 与其他两个不同,因为它使用随机梯度下降而不是精确梯度下降,并且可能不会收敛到相同的解决方案。然而,获得的解决方案可能具有更好的泛化性。

SVCLinearSVC之间,一个重要的决策标准是样本数量越大,LinearSVC收敛得越快。这是因为线性内核是一种特殊情况,它在 Liblinear 中进行了优化,但在 Libsvm 中没有进行优化。

关于machine-learning - 什么时候应该使用 LinearSVC 或 SVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com