バイナリ分類問題に使用するSVMカーネルはどれですか?


9

ベクターマシンのサポートについては、初心者です。特定の問題に最適なカーネル(線形、多項式など)を示すガイドラインはありますか?私の場合、特定の情報が含まれているかどうかに応じてWebページを分類する必要があります。つまり、バイナリ分類の問題があります。

一般的に、どのカーネルがこのタスクに最も適していると言えますか?または、特定のデータセットでそれらのいくつかを試して、最適なデータセットを見つける必要がありますか?ちなみに、私はlibSVMライブラリを利用するPythonライブラリscikit-learnを使用しています。


どのようにあなたのウェブページを表現していますか?言葉の袋?カーネルの選択は、入力空間で必要な類似性の測定に依存します。
2013

@Memmingはい、バッグオブワード表現を使用しています。類似度とはどういう意味ですか?Webページに特定の種類の情報が含まれているかどうかを調査しています。
pemistahl 2013

まだ確認していない場合は、このチュートリアルが役立つことがあります(csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf)。Libsvmには、モデルとモデルパラメーターのどちらかを選択するための組み込みのk分割交差検証スキームがあります。
Zoran

@PeterStahlまた、それはどのようなクラス境界を期待するかにも依存します。私はBag-of-Wordsスペースの経験がないので、あなたを大いに助けることはできません。
2013

回答:


10

あなたは実際に文学の未解決の問題にぶつかった。あなたが言うように、さまざまなカーネル(たとえば、線形、動径基底関数、シグモイド、多項式)があり、それぞれの方程式で定義された空間で分類タスクを実行します。私の知る限り、1つのカーネルが常に1つのタイプのテキスト分類タスクで別のタイプのタスクよりも優れていることを明確に示した人はいません。

考慮すべきことの1つは、各カーネル関数に1つ以上のパラメーターがあり、データセットに合わせて最適化する必要があるということです。つまり、適切に実行している場合は、2番目のホールドアウトトレーニングコレクションが必要です。これらのパラメータの最適な値を調べてください。(2番目のホールドアウトコレクションと言います。分類子の最適な入力機能を見つけるために使用しているコレクションが既にあるはずです。)しばらく前に、大規模な最適化をそれぞれ行った実験を行いました単純なテキスト分類タスクのこれらのパラメーターにより、各カーネルは適度にうまく機能しているように見えましたが、異なる構成でそうでした。私の結果を正しく覚えていれば、シグモイドは最高のパフォーマンスを発揮しましたが、非常に具体的なパラメーターチューニングでマシンを見つけるのに1か月以上かかっていました。


どうもありがとうございました。私の遅い反応でごめんなさい。現在、修士論文を書いています。この論文では、SVMだけでなく、いくつかの分類子の結果を評価する必要があります。残念ながら、多くのパラメーターの組み合わせをテストする時間はありません。そのため、私はおそらく線形カーネルに固執します。
ペミスタール2013

幸運を!それは良いことだと思います。
カイル。

7

Gaussianカーネルを試してください。

多くの場合、ガウスカーネルが最初に試行され、多くのアプリケーションで最高のカーネルであることがわかります(バッグオブワード機能も備えています)。線形カーネルも試してみてください。良い結果が得られると期待しないでください。テキスト分類の問題は非線形になる傾向があります。しかし、それはデータの感覚を与え、非線形性がどれだけ結果を改善するかについて満足することができます。

カーネル幅を適切に相互検証し、機能(tf-idfなど)を正規化する方法を検討してください。

異なるカーネル(つまり、ガウスではない)を選択するよりも、機能の正規化を改善することで、結果を改善できると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.