Main Content

判別分析モデルの使用による予測

predict は観測値の分類に事後確率事前確率およびコストという 3 つの数量を使用します。

predict は、予測される分類コストが最小になるように分類します。

y^=argminy=1,...,Kk=1KP^(k|x)C(y|k),

ここで

  • y^ は、予測された分類です。

  • K は、クラスの数です。

  • P^(k|x) は、観測値 x のクラス k の事後確率です。

  • C(y|k) は、真のクラスが k の場合に観測値を y として分類するコストです。

X 値のスペースは、分類 Y が特定の値となる領域に分割されます。この領域は、線形判別分析において直線で区切られ、2 次判別分析において円錐曲線 (楕円、双曲線または放物線) で区切られます。これらの領域の可視化については、判別分析分類器の作成と可視化を参照してください。

事後確率

点 x がクラス k に属する事後確率は、事前確率と多変量正規密度の積です。1 行 d 列の平均 μk および 1 行 d 列の点 x における d 行 d 列の共分散 Σk をもつ、多変量正規密度関数は次のとおりです。

P(x|k)=1((2π)d|Σk|)1/2exp(12(xμk)Σk1(xμk)T),

ここで、|Σk| は Σk の行列式、Σk1 は逆行列です。

P(k) でクラス k の事前確率を表してみます。すると、観測 x がクラス k になる事後確率は次のとおりです。

P^(k|x)=P(x|k)P(k)P(x),

ここで P(x) は正規化定数、つまり、P(x|k)P(k) の k の合計です。

事前確率

事前確率は次の 3 つの選択肢のいずれかです。

  • 'uniform' — クラス k の事前確率は、クラスの総数に対して 1 です。

  • 'empirical' — クラス k の事前確率は、クラス k の学習標本の数を学習標本の合計で除算した値です。

  • 数値ベクトル — クラス k の事前確率は、ベクトル Priorj 番目の要素です。fitcdiscr を参照してください。

分類器 obj を作成した後、ドット表記によって事前確率を設定できます。

obj.Prior = v;

ここで v は各要素が発生する頻度を表す正の要素のベクトルです。新しい事前確率を設定する場合に、分類器に再学習させる必要はありません。

コスト

判別分析の分類には、クラスごとの真の誤分類コストと観測値ごとの予測誤分類コストの 2 つのコストが関連付けられています。

クラスごとの真の誤分類コスト

Cost(i,j) は、真のクラスが i の場合に観測値をクラス j に分類するコストです。既定では、Cost(i,j)=1 (i~=j の場合) および Cost(i,j)=0 (i=j の場合) です。つまり、正しい分類のコストは 0 で、誤った分類では 1 です。

分類器を作成するときに、任意のコスト行列を設定できます。コスト行列を fitcdiscrCost 名前と値のペアに渡します。

分類器 obj を作成した後、ドット表記によってカスタム コストを設定できます。

obj.Cost = B;

B は、K クラスがある場合の KK 列のサイズの正方行列です。新しいコストを設定する場合に、分類器に再学習させる必要はありません。

観測ごとの予測誤分類コスト

学習された判別分析分類器 obj で分類する Nobs 観測があるとします。クラスは K 個あるものとします。1 行に 1 観測ずつ、観測値を行列 Xnew に置きます。次のコマンド

[label,score,cost] = predict(obj,Xnew)

は、他の出力の中でも特に NobsK 列のサイズのコスト行列を返します。コスト行列の各行には、観測をそれぞれの K クラスに分類する予測 (平均) コストに含まれます。cost(n,k) は次のようになります。

i=1KP^(i|X(n))C(k|i),

ここで

  • K は、クラスの数です。

  • P^(i|X(n)) は、観測値 Xnew(n) のクラス i の事後確率です。

  • C(k|i) は、真のクラスが i の場合に観測値を k として分類するコストです。

参考

関数

オブジェクト

関連するトピック