fitPosterior
サポート ベクター マシン (SVM) 分類器の事後確率の当てはめ
構文
説明
は、2 クラス学習で使用するスコアから事後確率への最適な変換関数が格納された、学習済みのサポート ベクター マシン (SVM) 分類器 ScoreSVMModel
= fitPosterior(SVMModel
)ScoreSVMModel
を返します。詳細は、アルゴリズムを参照してください。
[
は、スコアから事後確率への最適な変換関数のパラメーターをさらに返します。ScoreSVMModel
,ScoreTransform
] = fitPosterior(SVMModel
)
[
は、1 つ以上の名前と値のペアの引数によって指定された追加オプションを使用します。たとえば、分割数やホールドアウト標本比率を指定できます。ScoreSVMModel
,ScoreTransform
] = fitPosterior(SVMModel
,Name,Value
)
例
入力引数
出力引数
詳細
ヒント
以下は、陽性クラスの事後確率を予測する方法の 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 で導入