ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

resubMargin

クラス: ClassificationNaiveBayes

再代入による単純ベイズ分類器の分類マージン

説明

m = resubMargin(Mdl) は、Mdl.X に保存された学習データと、Mdl.Y に保存された対応するクラス ラベルを使用して、単純ベイズ分類器 Mdl の再代入分類マージン(m) を返します。

入力引数

すべて展開する

完全な学習済み単純ベイズ分類器。fitcnb で学習させた ClassificationNaiveBayes モデルとして指定します。

出力引数

すべて展開する

分類マージン。数値ベクトルとして返します。

msize(Mdl.X,1) と同じ長さです。m の各エントリは Mdl.X の対応する観測 (行) および Mdl.Y の要素の分類マージンです。

すべて展開する

フィッシャーのアヤメのデータセットを読み込みます。

load fisheriris
X = meas;    % Predictors
Y = species; % Response

単純ベイズ分類器を学習させます。クラスの順序を指定することをお勧めします。ラベルが与えられる場合、各予測子は条件付きで正規分布すると仮定します。

Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'});

MdlClassificationNaiveBayes 分類器です。

標本内分類マージンを推定します。箱ひげ図を使用してマージンの分布を表示します。

m = resubMargin(Mdl);

figure;
boxplot(m);
h = gca;
iqr = quantile(m,0.75) - quantile(m,0.25);
h.YLim = median(m) + iqr*[-4 4];
title 'Boxplot of the Margins';

観測マージンは、観測された (真の) クラスのスコアから、当該のクラスのすべてのスコアの中で最大の偽のクラスのスコアを差し引いたものです。分類器のマージンは比較的大きいことが推奨されます。

分類器マージンは、特定のクラスについて真のクラスで観測されたスコアと偽のクラスの最大スコアの差を観測値ごとに測定します。特徴選択を行う方法の一つとして、複数のモデルからの標本内マージンを比較します。この条件のみに基づき、マージンが最高となる分類器が最善の分類器と判断されます。

フィッシャーのアヤメのデータセットを読み込みます。次の 2 つのデータセットを定義します。

  • fullX。すべての予測子が格納されます (削除された 0 の列を除く)。

  • partX。最後の 20 個の予測子が格納されます。

load fisheriris
X = meas;    % Predictors
Y = species; % Response
fullX = X;
partX = X(:,3:4);

各予測子セットの単純ベイズ分類器を学習させます。

FullMdl = fitcnb(fullX,Y);
PartMdl = fitcnb(partX,Y);

分類器ごとに標本内マージンを推定します。各標本の信頼区間を計算します。

fullM = resubMargin(FullMdl);
partM = resubMargin(PartMdl);
n = size(X,1);
fullMCI = mean(fullM) + 2*[-std(fullM)/n std(fullM)/n]
fullMCI = 1×2

    0.8898    0.8991

partMCI = mean(partM) + 2*[-std(partM)/n std(partM)/n]
partMCI = 1×2

    0.9129    0.9209

信頼区間は狭く、互いに排他的です。予測子 3 および 4 だけを使用して学習させた分類器のマージンの信頼区間は、フル モデルのマージンの信頼区間より値が高いです。したがって、2 つの予測子で学習させたモデルは、標本内でのパフォーマンスが優れています。

詳細

すべて展開する