ocsvm
構文
説明
関数 ocsvm は、外れ値の検出と新規性の検出のための 1 クラス サポート ベクター マシン (SVM) モデルの当てはめに使用します。
外れ値検出 (学習データ中の異常を検出) —
ocsvmの出力引数tfを使用して、学習データ中の異常を検出します。新規性の検出 (汚染されていない学習データで新規のデータの異常を検出) — 汚染されていない学習データ (外れ値がないデータ) を
ocsvmに渡してOneClassSVMオブジェクトを作成します。そのオブジェクトと新規データをオブジェクト関数isanomalyに渡して、新規のデータの異常を検出します。
は、table Mdl = ocsvm(Tbl)Tbl の予測子データに対する OneClassSVM オブジェクト (1 クラス SVM モデル オブジェクト) を返します。
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Mdl = ocsvm(___,Name=Value) は、学習データの 10% を異常として処理するように関数に指示します。ContaminationFraction=0.1
例
入力引数
名前と値の引数
出力引数
詳細
ヒント
アルゴリズム
ocsvmは、Tblに含まれているNaN、''(空の文字ベクトル)、""(空の string)、<missing>、<undefined>の値とXに含まれているNaN値を欠損値と見なします。ocsvmは、一部の値が欠損値である観測値は使用しません。この関数は、それらの観測値に異常スコアNaNおよび異常インジケーターfalse(logical0) を割り当てます。ocsvmは、メモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) ソルバーとリッジ (L2) 正則化を使用して、正則化された目的関数を最小化します。変換後の予測子データを保持するためにocsvmで必要となるメモリがBlockSizeの値より多い場合、この関数はブロック単位方式を使用します。ocsvmがブロック単位方式を使用する場合、各反復で損失と勾配の計算をデータのさまざまな部分に分散させることにより LBFGS が実装されます。また、ocsvmは、データの一部に対してローカルにモデルを当てはめ、平均化で係数を結合することにより、線形係数およびバイアス項の初期推定値を改善します。Verbose=1が指定された場合、ocsvmは各データ通過についての診断情報を表示します。ocsvmがブロック単位方式を使用しない場合、初期推定値はゼロになります。Verbose=1が指定された場合、ocsvmは各反復についての診断情報を表示します。
代替機能
異常検出用の 1 クラス SVM モデルの学習には、関数 fitcsvm も使用できます。
関数
ocsvmは、関数fitcsvmよりも簡単で推奨される異常検出用のワークフローを提供します。関数
ocsvmは、OneClassSVMオブジェクト、異常インジケーター、および異常スコアを返します。その出力を使用して学習データの異常を特定できます。新規のデータの異常を見つけるには、OneClassSVMのオブジェクト関数isanomalyを使用できます。関数isanomalyは、新規データの異常インジケーターおよびスコアを返します。関数
fitcsvmは、1 クラスとバイナリの両方の分類をサポートします。クラス ラベル変数に 1 つしかクラスが含まれていない場合 (1 のベクトルの場合など)、fitcsvmは 1 クラス分類用にモデルを学習させ、ClassificationSVMオブジェクトを返します。異常を特定するには、最初にClassificationSVMのオブジェクト関数resubPredictまたはpredictを使用して異常スコアを計算してから、負のスコアをもつ観測値を探して異常を特定する必要があります。ocsvmでは大きい正の異常スコアが異常を示すのに対し、ClassificationSVMのpredictでは負のスコアが異常を示すことに注意してください。
関数
ocsvmは SVM の主問題形式に基づいて判定境界を求めるのに対し、関数fitcsvmは SVM の双対問題形式に基づいて判定境界を求めます。大規模な (n が大きい) データ セットについては、
ocsvmのソルバーの方がfitcsvmのソルバーよりも計算量が少なくなります。fitcsvmのソルバーでは n 行 n 列のグラム行列の計算が必要ですが、ocsvmのソルバーで必要なのは n 行 m 列の行列の形成だけです。ここで、m は拡張空間の次元数であり、ビッグ データにおいては一般に n よりもはるかに小さくなります。

