Main Content

logp

単純ベイズ分類器の対数条件なし確率密度

説明

lp = logp(Mdl,tbl) は、単純ベイズ モデル Mdl を使用して tbl の観測値 (行) の対数条件なし確率密度 (lp) を返します。lp を使用して学習データ内の外れ値を特定できます。

lp = logp(Mdl,X) は、単純ベイズモデル Mdl を使用して X の観測 (行) の対数条件なし確率密度を返します。

すべて折りたたむ

単純ベイズ分類器モデルの標本内観測値の条件なし確率密度を計算します。

fisheriris データ セットを読み込みます。150 本のアヤメについて 4 つの花弁の測定値が含まれる数値行列 X を作成します。対応するアヤメの種類が含まれる文字ベクトルの cell 配列 Y を作成します。

load fisheriris
X = meas;
Y = species;

予測子 X とクラス ラベル Y を使用して、単純ベイズ分類器に学習させます。クラス名を指定することが推奨されます。fitcnb は、各予測子が条件付き正規分布に従うと仮定しています。

Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'})
Mdl = 
  ClassificationNaiveBayes
              ResponseName: 'Y'
     CategoricalPredictors: []
                ClassNames: {'setosa'  'versicolor'  'virginica'}
            ScoreTransform: 'none'
           NumObservations: 150
         DistributionNames: {'normal'  'normal'  'normal'  'normal'}
    DistributionParameters: {3x4 cell}


Mdl は学習させた ClassificationNaiveBayes 分類器です。

標本内観測の条件なし確率密度を計算します。

lp = logp(Mdl,X);

非常に小さいまたは非常に大きい対数条件なし確率をもつ観測値のインデックスを特定します (ind)。外れ値検出メソッドで使用された下限 (L) および上限 (U) のしきい値を表示します。

[TF,L,U] = isoutlier(lp);
L
L = -6.9222
U
U = 3.0323
ind = find(TF)
ind = 4×1

    61
   118
   119
   132

外れ値の条件なし確率密度の値を表示します。

lp(ind)
ans = 4×1

   -7.8995
   -8.4765
   -6.9854
   -7.8969

すべての外れ値は、外れ値検出の下限のしきい値よりも小さくなっています。

条件なし確率密度をプロットします。

histogram(lp)
hold on
xline(L,'k--')
hold off
xlabel('Log unconditional probability')
ylabel('Frequency')
title('Histogram: Log Unconditional Probability')

Figure contains an axes object. The axes object with title Histogram: Log Unconditional Probability, xlabel Log unconditional probability, ylabel Frequency contains 2 objects of type histogram, constantline.

入力引数

すべて折りたたむ

単純ベイズ分類モデル。fitcnb によって返される ClassificationNaiveBayes モデル オブジェクト、または compact によって返される CompactClassificationNaiveBayes モデル オブジェクトとして指定します。

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

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

予測子データ。数値行列として指定します。

X の各行は 1 つの観測値 ("インスタンス" や "例" とも呼ばれます) に対応し、各列は 1 つの変数 ("特徴" とも呼ばれます) に対応します。X の列内の変数は、分類器 Mdl に学習させた変数と同じでなければなりません。

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

データ型: double | single

詳細

すべて折りたたむ

条件なし確率密度

予測子の "条件なし確率密度" はクラスで重視されない密度の分布です。

つまり、条件なし確率密度は次のようになります。

P(X1,..,XP)=k=1KP(X1,..,XP,Y=k)=k=1KP(X1,..,XP|y=k)π(Y=k),

ここで、π(Y = k) はクラスの事前確率です。クラス (P(X1,..,XP|y = k)) に対するデータの条件付き分布およびクラスの事前確率分布が、学習オプションになります (つまり、分類器を学習させるときにそれらを指定します)。

事前確率

クラスの "事前確率" は、母集団内でそのクラスの観測値が出現すると考えられる相対頻度です。

バージョン履歴

R2014b で導入