web-dev-qa-db-ja.com

scikit-learnのSVCとSVMの違いは何ですか?

documentation scikit-learnから、データセットでマルチクラス分類を実行できるクラスであるSVC、NuSVC、およびLinearSVCを実装します。一方、私はscikit learnがlibsvmをサポートベクターマシンアルゴリズムにも使用していることについても読みました。 SVCバージョンとlibsvmバージョンの違いについては少し混乱していますが、今のところ、SVCはマルチクラス問題のサポートベクターマシンアルゴリズムであり、libsvmはバイナリクラス問題のためです。誰も私がこれの違いを理解するのを助けることができますか?.

25
tumbleweed

それらは同じアルゴリズムの異なる実装です。 SVMモジュール(SVC、NuSVCなど)は libsvm ライブラリのラッパーであり、異なるカーネルをサポートしますが、LinearSVCliblinear に基づいており、線形カーネル。そう:

SVC(kernel = 'linear')

理論的には「同等」です:

LinearSVC()

実際には実装が異なるため、異なる結果が得られます。最も重要なことは、LinearSVCがサポートするのは線形カーネルのみであり、より高速で、はるかに優れたスケーリングが可能なことです。

24
elyase