4

ここに示すように、カイ二乗カーネルで scikit-learn の SVM を使用したいと考えています。このシナリオでは、カーネルはヒストグラム上にあり、これが私のデータが表すものです。ただし、ヒストグラムで使用されているこれらの例は見つかりません。これを行う適切な方法は何ですか?

ベクトルの各要素がヒストグラムのビンに対応するベクトルとしてヒストグラムを扱う正しいアプローチはありますか?

前もって感謝します

4

2 に答える 2

10

おおよその特徴マップを使用する例がここにあります。これは RBF カーネル用ですが、まったく同じように機能します。

AdditiveChi2Sampler上記の例では「パイプライン」を使用していますが、実際にはデータに適用されないため、変換を線形分類器に渡す前にデータに適用することもできますfit

これはカーネル マップの単なる概算であり (非常にうまく機能することがわかりました)、正確なカーネルを使用したい場合は、ogrisel の anwser を使用する必要があります。

于 2012-09-07T09:07:02.150 に答える
2

sklearn.svm.SVC2 つの方法でカスタム カーネルを受け入れます。

  • kernelコンストラクターに引数として渡される任意の Python 関数
  • コンストラクターに最初の引数として渡され、コンストラクター内で事前に計算されたfitカーネルkernel=precomputed行列

前者ははるかに遅くなる可能性がありますが、事前にカーネル行列全体を割り当てる必要はありません (これは、大規模な では禁止される可能性がありますn_samples)。

カスタム カーネルのドキュメントには、詳細と例へのリンクがあります。

于 2012-09-06T21:20:28.180 に答える