fitPosterior
コンパクトなサポート ベクター マシン (SVM) 分類器の事後確率の当てはめ
構文
説明
は、2 クラス学習で使用するスコアから事後確率への最適な変換関数が格納された、学習済みのサポート ベクター マシン (SVM) 分類器 ScoreSVMModel = fitPosterior(SVMModel,TBL,Y)ScoreSVMModel を返します。詳細は、アルゴリズムを参照してください。テーブルを使用して SVMModel に学習をさせた場合、fitPosterior の入力としてテーブルを使用しなければなりません。
は、2 クラス学習の場合に、スコアから事後確率への最適な変換関数が格納されている学習済み SVM 分類器 ScoreSVMModel = fitPosterior(SVMModel,X,Y)ScoreSVMModel を返します。行列を使用して SVMModel に学習をさせた場合、fitPosterior の入力として行列を使用しなければなりません。
[ は、前の構文における入力引数の組み合わせのすべてについて、スコアから事後確率への最適な変換関数のパラメーター (ScoreSVMModel,ScoreTransform] = fitPosterior(___)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™ が必要です。詳細については、コード生成の紹介を参照してください。
アルゴリズム
[1]で説明されているように、SVM 分類器 SVMModel を使用し、保存されている予測子データ (SVMModel.X) およびクラス ラベル (SVMModel.Y) によって 10 分割交差検証を実行することにより、スコアから事後確率への適切な変換関数が当てはめられます。この変換関数は、観測値が陽性のクラス (SVMModel.Classnames(2)) に分類される事後確率を計算します。
スコアから事後確率への変換関数を再度推定した場合、つまり、ScoreTransform プロパティが none ではない SVM 分類器を fitPosterior または fitSVMPosterior に渡した場合は、以下の処理が実行されます。
警告が表示されます。
新しい変換関数を推定する前に、元の変換関数が
'none'にリセットされます。
代替機能
また、fitSVMPosterior を使用することにより、スコアから事後確率への最適な変換関数を当てはめることもできます。この関数は fitPosterior に似ていますが、使用できる SVM 分類器の種類が多いので広範囲であるという点が異なります。
参照
[1] Platt, J. “Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods.” Advances in Large Margin Classifiers. Cambridge, MA: The MIT Press, 2000, pp. 61–74.
バージョン履歴
R2014a で導入
