3

作成しているアプリケーションにカイ2乗カーネルでSVMを使用したいのですが、これをどのように適用できるかは明らかではありません。

カーネルをとして定義しますK(x_i, x_j) = exp( -1/A * D(x_i, x_j))。ここAで、は選択可能なスケーリングパラメータであり、D(x_i, x_j)はそれらの間のカイ2乗距離です。

これはどのように行うことができますか?これはコンピュータビジョンの文献で一般的に使用されているカーネルであるため、それが不可能だったとしたら驚くでしょう。

4

2 に答える 2

2

OpenCV 3.0.0.0dev に実装があります。詳細はリンク先をご覧ください。

http://docs.opencv.org/master/modules/ml/doc/support_vector_machines.html

新しいリンク: http://docs.opencv.org/3.0-beta/modules/ml/doc/support_vector_machines.html

于 2014-02-18T13:26:01.813 に答える
0

opencv には、カイ 2 乗またはカスタム カーネルのオプションはないと思います。

したがって、1 つのオプションは、別の SVM ライブラリを使用することです。

これは、カイ二乗カーネル (別のカーネル) と事前計算済みカーネルをサポートする LIBSVM の変更です。ただし、Matlab での使用を対象としています。そのため、C++ で動作させるのにどれくらいの時間がかかるかわかりません。

別のオプションとして、opencv svm に固執する場合は、線形 SVM を使用してデータを変換し、カイ 2 乗カーネルを近似することができます。

この答えは、さらにヒントを与えるかもしれません。

于 2012-09-06T08:25:19.313 に答える