fitSVMPosterior
事後確率の近似
構文
説明
は、2 クラス学習で使用するスコアから事後確率への最適な変換関数が格納された、学習済みの SVM (サポート ベクター マシン) 分類器 ScoreSVMModel = fitSVMPosterior(SVMModel)ScoreSVMModel を返します。
スコアから事後確率への変換関数は、SVM 分類器 SVMModel を使用して近似されます。また、保存されている予測子データ (SVMModel.X) とクラス ラベル (SVMModel.Y) を使用して交差検証が実行されます。この変換関数は、観測値が陽性のクラス (SVMModel.Classnames(2)) に分類される事後確率を計算します。
クラスが不可分な場合、変換関数はシグモイド関数です。
クラスが完全に可分な場合、変換関数はステップ関数です。
2 クラス学習では、クラスの一方の相対的頻度が 0 の場合、変換関数は定数関数です。
fitSVMPosteriorは 1 クラス学習には適していません。SVMModelがClassificationSVM分類器である場合、最適な変換関数は 10 分割交差検証を使用して推定されます ([1]を参照してください)。それ以外の場合、SVMModelはClassificationPartitionedModel分類器でなければなりません。SVMModelは交差検証の方法を指定します。最適な変換関数が
ScoreSVMModel.ScoreTransformに格納されます。
は、学習済みのコンパクトな SVM 分類器 ScoreSVMModel = fitSVMPosterior(SVMModel,Tbl,ResponseVarName)SVMModel から、変換関数が含まれている学習済みのサポート ベクター分類器を返します。スコア変換関数は、table Tbl 内の予測子データとクラス ラベル Tbl.ResponseVarName を使用して推定されます。
は、学習済みのコンパクトな SVM 分類器 ScoreSVMModel = fitSVMPosterior(SVMModel,Tbl,Y)SVMModel から、変換関数が含まれている学習済みのサポート ベクター分類器を返します。スコア変換関数は、table Tbl 内の予測子データとクラス ラベル Y を使用して推定されます。
は、学習済みのコンパクトな SVM 分類器 ScoreSVMModel = fitSVMPosterior(SVMModel,X,Y)SVMModel から、変換関数が含まれている学習済みのサポート ベクター分類器を返します。予測子データ X とクラス ラベル Y を使用してスコア変換関数が推定されます。
SVMModel が ClassificationSVM 分類器である場合、 は 1 つ以上の ScoreSVMModel = fitSVMPosterior(___,Name,Value)Name,Value ペアの引数で指定された追加オプションを使用します。たとえば、k 分割交差検証で使用する分割の数を指定できます。
さらに、[ は、上記の構文の入力引数のいずれかを使用して、変換関数のパラメーター (ScoreSVMModel,ScoreTransform] = fitSVMPosterior(___)ScoreTransform) を返します。
例
入力引数
名前と値の引数
出力引数
詳細
ヒント
以下は、陽性クラスの事後確率を予測する方法の 1 つです。
データを
fitcsvmに渡し、SVM 分類器を学習させます。この結果、SVMModelなどの学習済み SVM 分類器が生成され、データが格納されます。スコア変換関数プロパティ (SVMModel.ScoreTransformation) がnoneに設定されます。学習させた SVM 分類器
SVMModelをfitSVMPosteriorまたはfitPosteriorに渡します。結果 (たとえばScoreSVMModel) はSVMModelと同じ学習済み SVM 分類器ですが、最適なスコア変換関数がScoreSVMModel.ScoreTransformationとして設定される点が異なります。最適なスコア変換関数が格納されている学習済み SVM 分類器 (
ScoreSVMModel) と予測子データ行列をpredictに渡します。predictの 2 番目の出力引数の 2 列目には、予測子データ行列の各行に対応する陽性クラスの事後確率が格納されます。手順 2 を省略した場合、
predictは陽性のクラスの事後確率ではなく、陽性のクラスのスコアを返します。
事後確率を当てはめた後で、新しいデータについてラベルを予測する C/C++ コードを生成できます。C/C++ コードの生成には MATLAB® Coder™ が必要です。詳細については、コード生成の紹介を参照してください。
アルゴリズム
スコアから事後確率への変換関数を再度推定した場合、つまり、ScoreTransform プロパティが none ではない SVM 分類器を fitPosterior または fitSVMPosterior に渡した場合は、以下の処理が実行されます。
警告が表示されます。
新しい変換関数を推定する前に、元の変換関数が
'none'にリセットされます。
参照
[1] Platt, J. “Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods”. In: Advances in Large Margin Classifiers. Cambridge, MA: The MIT Press, 2000, pp. 61–74.
バージョン履歴
R2014a で導入
