Main Content

mahal

判別分析分類器のクラスの平均に対するマハラノビス距離

説明

M = mahal(Mdl,Tbl) は、Tbl の観測値 (行) から Mdl のクラス平均までのマハラノビス平方距離を返します。

M = mahal(Mdl,X) は、X の観測値 (行) から Mdl のクラス平均までのマハラノビス平方距離を返します。

M = mahal(Mdl,Tbl,ClassLabels=labels) は、マハラノビス平方距離を列ベクトル M として返します。ここで、M(i) は、Tbli 番目の行から labelsi 番目の要素に対応するクラスの平均までのマハラノビス平方距離です。

M = mahal(Mdl,X,ClassLabels=labels) は、マハラノビス平方距離を列ベクトル M として返します。ここで、M(i) は、Xi 番目の行から labelsi 番目の要素に対応するクラスの平均までのマハラノビス平方距離です。

すべて折りたたむ

フィッシャーのアヤメのデータの平均からクラス平均までのマハラノビス距離を求めます。

フィッシャーのアヤメのデータの分類モデルを作成します。

load fisheriris
obj = fitcdiscr(meas,species,DiscrimType="quadratic");

クラスごとに異なる共分散行列を使用してマハラノビス距離を求めます。

mahadist = mahal(obj,mean(meas))
mahadist = 1×3

  220.0667    5.0254   30.5804

入力引数

すべて折りたたむ

学習済みの判別分析分類器。fitcdiscr で学習させた ClassificationDiscriminant モデル オブジェクト、または compact で作成した CompactClassificationDiscriminant モデル オブジェクトとして指定します。

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

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

データ型: table

予測子データ。数値行列として指定します。X の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。カテゴリカル予測子変数はサポートされていません。X の列内の変数は、Mdl の学習に使用した変数と同じでなければなりません。X の行数は Y の行数と等しくなければなりません。

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

データ型: single | double

クラス ラベル。Mdl.ResponseNamen 個の要素として指定します。ここで、nTbl または X の行数です。

例: m = mahal(Mdl,Tbl,ClassLabels=Tbl.(Mdl.ResponseName))

例: m = mahal(Mdl,X,ClassLabels=Mdl.Y)

出力引数

すべて折りたたむ

マハラノビス平方距離。数値行列または列ベクトルとして返されます。M のサイズと意味は、labels を指定するかどうかによって異なります。

  • labels がない場合、M はサイズ nK 列の数値行列です。ここで、KMdl のクラスの数、nX の行数です。M(i,j) は、Xi 番目の行からクラス j の平均までのマハラノビス平方距離です。

  • labels がある場合、Mn 個の要素をもつ列ベクトルです。M(i) は、Xi 番目の行から labelsi 番目の要素に対応するクラスの平均までのマハラノビス平方距離です。

詳細

すべて折りたたむ

マハラノビス距離

所定の nn 列の共分散行列 S に関する n 次元の点 xy 間のマハラノビス距離 d(x,y) は次のとおりです。

d(x,y)=(xy)TS1(xy).

バージョン履歴

R2011b で導入