Main Content

edge

アンサンブル分類モデルの分類エッジ

説明

e = edge(ens,tbl,ResponseVarName) は、table tbl 内の予測子データと tbl.ResponseVarName 内のクラス ラベルを使用して、学習済みのアンサンブル分類モデル ens分類エッジ e を返します。

分類エッジ e は、名前と値の引数 Mode の設定に応じてベクトルまたはスカラーになります。

e = edge(ens,tbl,Y) は、table tbl 内の予測子データと Y 内のクラス ラベルを使用して、分類エッジを返します。

e = edge(ens,X,Y) は、行列 X 内の予測子データと Y 内のクラス ラベルを使用して、分類エッジを返します。

e = edge(___,Name=Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、マージンの計算に使用するアンサンブル内の弱学習器のインデックスを指定したり、観測値の重みを指定したり、計算を並列に実行したりできます。

メモ

予測子データ X または tbl 内の予測子変数に欠損値がある場合、関数 edge で NaN が返されることがあります。詳細については、欠損値がある予測子データに対して edge で NaN が返されることがあるを参照してください。

すべて折りたたむ

ブースティング アンサンブル分類器に学習をさせるために使用するデータの一部について、分類エッジを求めます。

ionosphere データ セットを読み込みます。

load ionosphere

AdaBoostM1 を使用して 100 本のブースティング分類木のアンサンブルに学習をさせます。

t = templateTree(MaxNumSplits=1); % Weak learner template tree object
ens = fitcensemble(X,Y,"Method","AdaBoostM1","Learners",t);

最後の数行について分類エッジを求めます。

E = edge(ens,X(end-10:end,:),Y(end-10:end))
E = 8.3310

入力引数

すべて折りたたむ

完全なアンサンブル分類モデル。fitcensemble で学習させた ClassificationEnsemble モデル オブジェクト、または compact で作成した CompactClassificationEnsemble モデル オブジェクトとして指定します。

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

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

データ型: table

応答変数の名前。tbl 内の変数の名前で指定します。ens を学習させるために使用した応答変数が tbl に含まれている場合、ResponseVarName を指定する必要はありません。

ResponseVarName を指定する場合は、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、応答変数 Ytbl.Y として格納されている場合、"Y" として指定します。それ以外の場合、tbl の列は Y を含めてすべて予測子として扱われます。

応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1 つの行に対応しなければなりません。

データ型: char | string

クラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。Y のデータ型は tbl または X と同じでなければなりません。(string 配列は文字ベクトルの cell 配列として扱われます)。

Y の型は ens の学習に使用した分類と同じでなければならず、要素数は tbl または X の行数と等しくなければなりません。

データ型: categorical | char | string | logical | single | double | cell

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

X の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。X の列内の変数は、ens の学習に使用した変数と同じでなければなりません。

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

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

データ型: double | single

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: edge(Mdl,X,Mode="individual",UseParallel=true) は、学習させた学習器ごとに 1 つの要素をもつベクトルを出力し、並列に実行するように指定します。

edge で使用するアンサンブル内の弱学習器のインデックス。範囲 [1:ens.NumTrained] の正の整数のベクトルとして指定します。既定では、すべての学習器が使用されます。

例: Learners=[1 2 4]

データ型: single | double

出力の集約レベル。"ensemble""individual"、または "cumulative" として指定します。

説明
"ensemble"出力は、アンサンブル全体に対する損失を表すスカラー値になります。
"individual"出力は、学習させた学習器ごとに 1 つの要素をもつベクトルになります。
"cumulative"出力は、学習器の入力リストから学習器 1:J を使用して要素 J が取得されたベクトルになります。

例: Mode="individual"

データ型: char | string

学習器の観測値を使用するオプション。NT 列のサイズの logical 行列として指定します。

  • NX の行の数です。

  • T は、ens に存在する弱学習器の数です。

UseObsForLearner(i,j)true (既定) の場合、学習器 jX の行 i のクラスの予測に使用されます。

例: UseObsForLearner=logical([1 1; 0 1; 1 0])

データ型: logical matrix

並列実行のフラグ。数値または logical の 1 (true) または 0 (false) として指定します。UseParallel=true を指定した場合、関数 edgeparfor を使用して for ループの反復を実行します。Parallel Computing Toolbox™ がある場合、ループが並列に実行されます。

例: UseParallel=true

データ型: logical

観測値の重み。数値ベクトルまたは tbl 内の変数の名前を指定します。重みを指定すると、edge は重み付きの分類エッジを計算します。

Weights として数値ベクトルを指定する場合、Weights のサイズは X または tbl 内の観測値の個数と等しくなければなりません。合計が各クラスの事前確率の値と等しくなるように Weights が正規化されます。

tbl 内の変数名を Weights として指定する場合、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、重みが tbl.w として格納されている場合、Weights として "w" を指定します。それ以外の場合、tbl の列は tbl.w を含めてすべて予測子として扱われます。

データ型: single | double | char | string

詳細

すべて折りたたむ

マージン

分類マージンは、真のクラスの分類スコアと、偽のクラスの最大分類スコアの差を表します。マージンは、行列 X と同じ行数をもつ列ベクトルです。

スコア (アンサンブル)

アンサンブルの場合、分類スコアは分類の信頼度をクラスで表したものです。スコアが高いほど、信頼度も高くなります。

アンサンブル アルゴリズムが異なれば、スコアの定義も違ってきます。さらに、スコアの範囲はアンサンブル タイプによって異なります。以下に例を示します。

  • AdaBoostM1 スコアの範囲は –∞ ~ ∞ です。

  • Bag スコアの範囲は 01 です。

分類エッジ

"エッジ" は、分類マージンの加重平均値です。重みは ens.Prior のクラス確率です。名前と値の引数 Weights で重みを指定すると、それらの重みがクラス確率の代わりに使用されます。

拡張機能

バージョン履歴

R2011a で導入

すべて展開する