これは簡単な質問かもしれませんが、1 クラス SVM の LibSVM 実装の概念的な基礎と、私が行っていることが許容されるかどうかを理解したいと思います。
この場合、外れ値の検出と除去のために 1 つのクラスの SVM を使用しています。これは、より大きな時系列予測モデルのコンテキストで、データの前処理ステップとして使用されます。そうは言っても、Y ベクトル (予測しようとしている量であり、クラス ラベルではなく連続です) と X 行列 (予測に使用される連続特徴) があります。前処理ステップの早い段階でデータの異常値を検出したいので、予測に使用するために X マトリックスを正規化またはラグする必要があります。さらに言えば、Y ベクトルをトレンド除去/ノイズ除去/またはその他の方法で処理する必要があります (これは既にスケーリングされています)。 [-1,1] 以内)。私の主な質問は、1 つのクラスの SVM を (libSVM を使用して) 次のようにモデル化することが正しいかどうかです。
svmod = svmtrain(ones(size(Y,1),1),Y,'-s 2 -t 2 -g 0.00001 -n 0.01');
[od,~,~] = svmpredict(ones(size(Y,1),1),Y,svmod);
結果として得られるモデルは、私が期待するものとある程度一致するパフォーマンスをもたらします (99% 程度の予測精度、つまり観測値の 1% が異常値であることを意味します)。しかし、私が質問する理由は、1 つのクラスの SVM に関する他の質問では、私が Y を使用する X 行列を使用しているように見えるからです。助けてくれてありがとう。