主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

fitSVMPosterior

説明

ScoreSVMModel= fitSVMPosterior (SVMModelは2クラス学習で使用するスコアから事後確率への最適な変換関数が格納された,学習済みのSVM(サポートベクターマシン)分類器ScoreSVMModelを返します。

スコアから事後確率への変換関数は,支持向量机分類器SVMModelを使用して近似されます。また,保存されている予測子データ(SVMModel。X)とクラスラベル(SVMModel。Y)を使用して交差検証が実行されます。この変換関数は,観測値が陽性のクラス(SVMModel.Classnames (2))に分類される事後確率を計算します。

  • クラスが不可分な場合,変換関数はシグモイド関数です。

  • クラスが完全に可分な場合,変換関数はステップ関数です。

  • 2クラス学習では,クラスの一方の相対的頻度が0の場合,変換関数は定数関数です。fitSVMPosteriorは1クラス学習には適していません。

  • SVMModelClassificationSVM分類器である場合,最適な変換関数は10分割交差検証を使用して推定されます([1]を参照してください)。それ以外の場合,SVMModelClassificationPartitionedModel分類器でなければなりません。SVMModelは交差検証の方法を指定します。

  • 最適な変換関数がScoreSVMModel。ScoreTransformに格納されます。

ScoreSVMModel= fitSVMPosterior (SVMModel资源描述ResponseVarNameは,学習済みのコンパクトなSVM分類器SVMModelから,変換関数が含まれている学習済みのサポートベクター分類器を返します。スコア変換関数は,テーブル资源描述内の予測子データとクラスラベル资源描述。ResponseVarNameを使用して推定されます。

ScoreSVMModel= fitSVMPosterior (SVMModel资源描述Yは,学習済みのコンパクトなSVM分類器SVMModelから,変換関数が含まれている学習済みのサポートベクター分類器を返します。スコア変換関数は,テーブル资源描述内の予測子データとクラスラベルYを使用して推定されます。

ScoreSVMModel= fitSVMPosterior (SVMModelXYは,学習済みのコンパクトなSVM分類器SVMModelから,変換関数が含まれている学習済みのサポートベクター分類器を返します。予測子データXとクラスラベルYを使用してスコア変換関数が推定されます。

SVMModelClassificationSVM分類器である場合,<年代pan id="d123e385349" itemprop="syntax">ScoreSVMModel= fitSVMPosterior (<年代pan class="argument_placeholder">___,名称,值は1つ以上の名称,值ペアの引数で指定された追加オプションを使用します。たとえばk分割交差検証で使用する分割の数を指定できます。

さらに,<年代pan id="d123e385374" itemprop="syntax">ScoreSVMModelScoreTransform) = fitSVMPosterior (<年代pan class="argument_placeholder">___)は,上記の構文の入力引数のいずれかを使用して,変換関数のパラメーター(ScoreTransform)を返します。

すべて折りたたむ

フィッシャーのアヤメのデータセットを読み込みます。花弁の長さと幅を使用して分類器に学習させ,データからvirginica種を削除します。

负载<年代pan style="color:#A020F0">fisheririsclassKeep = ~ strcmp(物种,<年代pan style="color:#A020F0">“virginica”);X =量(classKeep 3:4);y =物种(classKeep);gscatter (X (: 1) X (:, 2), y);标题(<年代pan style="color:#A020F0">“虹膜测量散点图”)包含(<年代pan style="color:#A020F0">“花瓣长度”) ylabel (<年代pan style="color:#A020F0">“花瓣宽度”)传说(<年代pan style="color:#A020F0">“Setosa”,<年代pan style="color:#A020F0">“多色的”)

图中包含一个坐标轴。标题为“虹膜测量散点图”的轴包含2个类型为线的对象。这些物体代表了Setosa, Versicolor。

クラスは完全に可分です。そのため,スコア変換関数はステップ関数です。

データを使用してSVM分類器に学習させます。10分割交差検証 (既定) を使用して分類器を交差検証します。

rng (1);CVSVMModel = fitcsvm (X, y,<年代pan style="color:#A020F0">“CrossVal”,<年代pan style="color:#A020F0">“上”);

CVSVMModelは学習させたClassificationPartitionedModel支持向量机分類器です。

スコアを事後確率に変換するステップ関数を推定します。

[ScoreCVSVMModel, ScoreParameters] = fitSVMPosterior (CVSVMModel);
警告:类是完全分离的。最优积分后验变换是一个阶跃函数。

fitSVMPosteriorは次のことを行います。

  • CVSVMModelに格納されたデータを使用して変換関数を近似します。

  • クラスが可分な場合に警告を表示します。

  • ステップ関数をScoreCSVMModel。ScoreTransformに格納します。

スコア関数の種類とそのパラメーター値を表示します。

ScoreParameters
ScoreParameters =<年代pan class="emphasis">结构体字段:类型:'step' LowerBound: -0.8431 UpperBound: 0.6897 PositiveClassProbability: 0.5000

ScoreParametersは構造体配列であり,次の4つのフィールドがあります。

  • スコア変換関数の種類(类型

  • 陰性のクラスの境界に対応するスコア(下界

  • 陽性のクラスの境界に対応するスコア(UpperBound

  • 陽性のクラスの確率(PositiveClassProbability

クラスは可分なので,ステップ関数はスコアを0または1に変換します。これは,観測値が杂色的種のアヤメである事後確率です。

电离层データセットを読み込みます。

负载<年代pan style="color:#A020F0">电离层

このデータセットのクラスは不可分です。

支持向量机分類器を学習させます。10分割交差検証を使用して交差検証します (既定の設定)。予測子を標準化してクラスの順序を指定することをお勧めします。

rng (1)<年代pan style="color:#228B22">%的再现性CVSVMModel = fitcsvm (X, Y,<年代pan style="color:#A020F0">“类名”, {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’},<年代pan style="color:#A020F0">“标准化”,真的,<年代pan style="color:#0000FF">...“CrossVal”,<年代pan style="color:#A020F0">“上”);ScoreTransform = CVSVMModel。ScoreTransform
ScoreTransform = '没有'

CVSVMModelは学習させたClassificationPartitionedModel支持向量机分類器です。陽性のクラスは‘g’です。ScoreTransformプロパティは没有一个

観測スコアを,‘g’として分類される観測の事後確率にマッピングするために最適なスコア関数を推定します。

[ScoreCVSVMModel, ScoreParameters] = fitSVMPosterior (CVSVMModel);ScoreTransform = ScoreCVSVMModel。ScoreTransform
ScoreTransform = ' @ (S)乙状结肠(e-01 e-01年代,-9.481799,-1.218494)的
ScoreParameters
ScoreParameters =<年代pan class="emphasis">结构体字段:类型:'sigmoid'斜率:-0.9482截距:-0.1218

ScoreTransformは最適なスコア変換関数です。ScoreParametersにはスコア変換関数,勾配の推定値,切片の推定値が格納されています。

ScoreCVSVMModelkfoldPredictに渡すと,検定標本の事後確率を推定することができます。

SVMアルゴリズムの検定セットの陽性クラス事後確率を推定します。

电离层データセットを読み込みます。

负载<年代pan style="color:#A020F0">电离层

支持向量机分類器を学習させます。20%のホールドアウト標本を指定します。予測子を標準化してクラスの順序を指定することをお勧めします。

rng (1)<年代pan style="color:#228B22">%的再现性CVSVMModel = fitcsvm (X, Y,<年代pan style="color:#A020F0">“坚持”, 0.2,<年代pan style="color:#A020F0">“标准化”,真的,<年代pan style="color:#0000FF">...“类名”, {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’});

CVSVMModelは学習させたClassificationPartitionedModel交差検証分類器です。

観測スコアを,‘g’として分類される観測の事後確率にマッピングするために最適なスコア関数を推定します。

ScoreCVSVMModel = fitSVMPosterior (CVSVMModel);

ScoreSVMModelは学習させたClassificationPartitionedModel交差検証分類器で,学習データから推定された最適スコア変換関数が含まれます。

標本外の陽性クラス事後確率を推定します。最初の10件の標本外観測の結果を表示します。

[~, OOSPostProbs] = kfoldPredict (ScoreCVSVMModel);indx = ~ isnan (OOSPostProbs (:, 2));hoObs =找到(indx);<年代pan style="color:#228B22">%抵抗观察数字OOSPostProbs = [hobs, OOSPostProbs(indx,2)];表(OOSPostProbs (1:10, 1), OOSPostProbs (1:10), 2),<年代pan style="color:#0000FF">...“VariableNames”, {<年代pan style="color:#A020F0">“ObservationIndex”,<年代pan style="color:#A020F0">“PosteriorProbability”})
ans =<年代pan class="emphasis">10×2表ObservationIndex PosteriorProbability ________________ ____________________ 6 0.17379 7 0.89638 8 0.0076606 9 0.91603 16 0.026714 22 4.6086e-06 23 0.9024 24 2.4131e-06 38 0.00042687 41 0.86427

入力引数

すべて折りたたむ

学習させたSVM分類器。ClassificationSVMCompactClassificationSVMまたはClassificationPartitionedModel分類器として指定します。

SVMModelClassificationSVM分類器の場合,オプションの名前と値のペアの引数を設定できます。

SVMModelCompactClassificationSVM分類器である場合,予測子データXとクラスラベルYを入力しなければなりません。

標本データ。テーブルとして指定します。资源描述の各行は1つの観測値に,各列は1つの予測子変数に対応します。必要に応じて,応答変数用および観測値の重み用の追加列を资源描述に含めることができます。资源描述には,SVMModelを学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの细胞配列ではない cell 配列と複数列の変数は使用できません。

SVMModelを学習させるために使用した応答変数が资源描述に含まれている場合,ResponseVarNameまたはYを指定する必要はありません。

テーブルに格納されている標本データを使用してSVMModelに学習をさせた場合,fitSVMPosteriorの入力データもテーブルに含まれていなければなりません。

SVMModelに学習をさせるときにfitcsvm“标准化”,真的を設定した場合,対応するSVMModel。μ内の平均およびSVMModel。σ内の標準偏差を使用して,予測子データの列が標準化されます。

データ型:表格

スコアから事後確率への変換関数の推定に使用する予測子データ。行列として指定します。

Xの各行は1件の観測(インスタンスや例とも呼ばれます)に対応し,各列は1個の変数(特徴とも呼ばれます)に対応します。

Yの長さとXの行数は等しくなければなりません。

SVMModelに学習をさせるときにfitcsvm“标准化”,真的を設定した場合,標準化されたデータを使用して変換関数のパラメーター推定値があてはめられます。

データ型:|

応答変数の名前。资源描述に含まれている変数の名前として指定します。SVMModelを学習させるために使用した応答変数が资源描述に含まれている場合,ResponseVarNameを指定する必要はありません。

ResponseVarNameを指定する場合は,文字ベクトルまたは字符串スカラーとして指定しなければなりません。たとえば,応答変数が资源描述。响应として格納されている場合,ResponseVarNameとして“响应”を指定します。それ以外の場合,资源描述の列は资源描述。响应を含めてすべて予測子として扱われます。

応答変数は,绝对配列,文字配列,字符串配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列でなければなりません。応答変数が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。

データ型:字符|字符串

スコアから事後確率に変換する関数の推定に使用するクラスラベル。绝对配列、文字配列、年代tring 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。

Yが文字配列の場合,各要素は1つのクラスラベルに対応しなければなりません。

Yの長さとXの行数は等しくなければなりません。

データ型:分类|字符|字符串|逻辑|||细胞

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“KFold”,8SVMModelClassificationSVM分類器である場合に8分割交差検証を実行します。

変換関数の計算に使用する交差検証分割。“CVPartition”と,cvpartitionによって作成されたcvpartition分割オブジェクトから構成されるコンマ区切りのペアとして指定します。交差検証済みモデルの作成には,次の4つのオプションの1つだけを使用できます。“KFold”“坚持”“Leaveout”または“CVPartition”のいずれかです。

fitcsvmの名前と値のペアの引数crossvalは,cvpartitionを使用してデータをサブセットに分割します。

例:本量利= cvpartition(500年,“KFold”,5)500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,“CVPartition”,本量利を使用して交差検証済みモデルを指定できます。

変換関数の計算に使用するホールドアウト検証用データの比率。“坚持”と(0,1)の範囲内にあるスカラー値から構成されるコンマ区切りのペアとして指定します。ホールドアウト検証では,指定された比率のデータを検定し,残りのデータを学習に使用します。

交差検証済みモデルの作成には,次の4つのオプションの1つだけを使用できます。“KFold”“坚持”“Leaveout”または“CVPartition”のいずれかです。

例:“坚持”,0.1

データ型:|

変換関数を計算するときに使用する分割数。“KFold”と1より大きい正の整数値から構成されるコンマ区切りのペアとして指定します。

交差検証済みモデルの作成には,次の4つのオプションの1つだけを使用できます。“KFold”“坚持”“Leaveout”または“CVPartition”のいずれかです。

例:“KFold”,8

データ型:|

変換関数の計算に分析交差検証を使用するかどうかを示す分析交差検証フラグ。“Leaveout”“上”または“关闭”から構成されるコンマ区切りのペアとして指定します。“Leaveout”,“上”を指定することにより分析法の交差検証を使用します。

交差検証済みモデルの作成には,次の4つのオプションの1つだけを使用できます。“KFold”“坚持”“Leaveout”または“CVPartition”のいずれかです。

例:“Leaveout”,“上”

出力引数

すべて折りたたむ

推定されたスコア変換関数が格納された,学習させたSVM分類器。ClassificationSVMCompactClassificationSVMまたはClassificationPartitionedModel分類器として返されます。

ScoreSVMModel分類器の種類はSVMModel分類器の種類と同じです。

事後確率を推定するには,ScoreSVMModelと予測子データを预测に渡します。fitcsvm“标准化”,真的に設定してSVMModelを学習させた場合,预测によりXの列がSVMModel。μの対応する平均値とSVMModel。σの標準偏差を使用して標準化されます。

スコアから事後確率への最適な変換関数のパラメーター。構造体配列として指定します。类型フィールドの値によって,次のようになります。

  • 乙状结肠の場合,ScoreTransformには次の3つのフィールドがあります。

  • 一步の場合,ScoreTransformには次の3つのフィールドがあります。

    • PositiveClassProbabilityステップ関数のπの値。πは次の内容を表します。

      • 観測値が陽性のクラスにある確率。

      • スコアが(下界UpperBound)の範囲にある事後確率。

    • 下界:ステップ関数の<年代pan class="inlineequation"> 马克斯 y n 1 年代 n の値。陽性のクラスPositiveClassProbabilityにある事後確率を,スコアに割り当てる範囲の下限を表します。スコアが下界より小さい観測値は,陽性のクラスである事後確率が0です。

    • UpperBound:ステップ関数の<年代pan class="inlineequation"> 最小值 y n + 1 年代 n の値。陽性のクラスPositiveClassProbabilityにおいて,事後確率を割り当てる範囲の上限を表します。スコアがUpperBoundより大きい観測値は,陽性のクラスである事後確率が1です。

  • 常数の場合,ScoreTransform。PredictedClassにはクラス予測の名前が格納されます。

    この結果は,SVMModel。一会と同じです。観測値がScoreTransform。PredictedClassにある事後確率は必ず1となります。

詳細

すべて折りたたむ

シグモイド関数

観測値jに対応するスコア年代<年代ub>jを陽性クラスの事後確率にマッピングするシグモイド関数は,次のようになります。

P 年代 j 1 1 + 经验值 一个 年代 j + B

ScoreTransform类型フィールドの値が乙状结肠である場合,パラメーター一およびBはそれぞれScoreTransformのフィールド规模および拦截に対応します。

ステップ関数

観測値jに対応するスコア年代<年代ub>jを陽性のクラスの事後確率にマッピングするステップ関数は,次のようになります。

P 年代 j 0 年代 < 马克斯 y k 1 年代 k π 马克斯 y k 1 年代 k 年代 j 最小值 y k + 1 年代 k 1 年代 j > 最小值 y k + 1 年代 k

ここで

  • 年代<年代ub>jは観測値jのスコアです。

  • 1 + 1とはそれぞれ陽性と陰性のクラスを表します。

  • πは観測値が陽性のクラスにある事前確率を表しています。

ScoreTransform类型フィールドの値が一步である場合,数量<年代pan class="inlineequation"> 马克斯 y k 1 年代 k および<年代pan class="inlineequation"> 最小值 y k + 1 年代 k はそれぞれScoreTransformのフィールド下界およびUpperBoundに対応します。

定数関数

定数関数は標本内のすべてのスコアを事後確率1または0にマッピングします。

すべての観測値の事後確率が1である場合,これらは陽性のクラスから派生したと予想されます。

すべての観測値の事後確率が0である場合,これらは陽性のクラスから派生したと予想されません。

ヒント

  • 以下は,陽性クラスの事後確率を予測する方法の1つです。

    1. データをfitcsvmに渡し,支持向量机分類器を学習させます。この結果,SVMModelなどの学習済みSVM分類器が生成され,データが格納されます。スコア変換関数プロパティ(SVMModel。ScoreTransformation)が没有一个に設定されます。

    2. 学習させたSVM分類器SVMModelfitSVMPosteriorまたはfitPosteriorに渡します。結果(たとえばScoreSVMModel)はSVMModelと同じ学習済みSVM分類器ですが,最適なスコア変換関数がScoreSVMModel。ScoreTransformationとして設定される点が異なります。

    3. 最適なスコア変換関数が格納されている学習済みSVM分類器(ScoreSVMModel)と予測子データ行列を预测に渡します。预测の2番目の出力引数の2列目には,予測子データ行列の各行に対応する陽性クラスの事後確率が格納されます。

      手順2を省略した場合,预测は陽性のクラスの事後確率ではなく,陽性のクラスのスコアを返します。

  • 事後確率をあてはめた後で,新しいデータについてラベルを予測するC / c++コードを生成できます。C / c++コードの生成には<年代pan>MATLAB<年代up>®编码器™が必要です。詳細については、コード生成の紹介を参照してください。

アルゴリズム

スコアから事後確率への変換関数を再度推定した場合,つまり,ScoreTransformプロパティが没有一个ではないSVM分類器をfitPosteriorまたはfitSVMPosteriorに渡した場合は,以下の処理が実行されます。

  • 警告が表示されます。

  • 新しい変換関数を推定する前に,元の変換関数が“没有”にリセットされます。

参照

[1] Platt, J. <支持向量机的概率输出和与正则似然方法的比较>。金宝app在:大边距分类器的进步。麻省理工学院出版社,2000年,61-74页。

参考

|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

R2014aで導入