ここに示すように、カイ二乗カーネルで scikit-learn の SVM を使用したいと考えています。このシナリオでは、カーネルはヒストグラム上にあり、これが私のデータが表すものです。ただし、ヒストグラムで使用されているこれらの例は見つかりません。これを行う適切な方法は何ですか?
ベクトルの各要素がヒストグラムのビンに対応するベクトルとしてヒストグラムを扱う正しいアプローチはありますか?
前もって感謝します
ここに示すように、カイ二乗カーネルで scikit-learn の SVM を使用したいと考えています。このシナリオでは、カーネルはヒストグラム上にあり、これが私のデータが表すものです。ただし、ヒストグラムで使用されているこれらの例は見つかりません。これを行う適切な方法は何ですか?
ベクトルの各要素がヒストグラムのビンに対応するベクトルとしてヒストグラムを扱う正しいアプローチはありますか?
前もって感謝します
おおよその特徴マップを使用する例がここにあります。これは RBF カーネル用ですが、まったく同じように機能します。
AdditiveChi2Sampler
上記の例では「パイプライン」を使用していますが、実際にはデータに適用されないため、変換を線形分類器に渡す前にデータに適用することもできますfit
。
これはカーネル マップの単なる概算であり (非常にうまく機能することがわかりました)、正確なカーネルを使用したい場合は、ogrisel の anwser を使用する必要があります。
sklearn.svm.SVC
2 つの方法でカスタム カーネルを受け入れます。
kernel
コンストラクターに引数として渡される任意の Python 関数fit
カーネルkernel=precomputed
行列前者ははるかに遅くなる可能性がありますが、事前にカーネル行列全体を割り当てる必要はありません (これは、大規模な では禁止される可能性がありますn_samples
)。
カスタム カーネルのドキュメントには、詳細と例へのリンクがあります。