edge
アンサンブル分類モデルの分類エッジ
説明
は、table e
= edge(ens
,tbl
,ResponseVarName
)tbl
内の予測子データと tbl.ResponseVarName
内のクラス ラベルを使用して、学習済みのアンサンブル分類モデル ens
の 分類エッジ e
を返します。
分類エッジ e
は、名前と値の引数 Mode
の設定に応じてベクトルまたはスカラーになります。
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、マージンの計算に使用するアンサンブル内の弱学習器のインデックスを指定したり、観測値の重みを指定したり、計算を並列に実行したりできます。e
= edge(___,Name=Value
)
メモ
予測子データ 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
入力引数
ens
— アンサンブル分類モデル
ClassificationEnsemble
モデル オブジェクト | CompactClassificationEnsemble
モデル オブジェクト
完全なアンサンブル分類モデル。fitcensemble
で学習させた ClassificationEnsemble
モデル オブジェクト、または compact
で作成した CompactClassificationEnsemble
モデル オブジェクトとして指定します。
tbl
— 標本データ
table
標本データ。テーブルとして指定します。tbl
の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。tbl
には、モデルを学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
table に格納されている標本データを使用して ens
に学習させた場合、edge
の入力データも table に含まれていなければなりません。
データ型: table
ResponseVarName
— 応答変数名
name of variable in tbl
tbl
応答変数の名前。tbl
内の変数の名前で指定します。ens
を学習させるために使用した応答変数が tbl
に含まれている場合、ResponseVarName
を指定する必要はありません。
ResponseVarName
を指定する場合は、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、応答変数 Y
が tbl.Y
として格納されている場合、"Y"
として指定します。それ以外の場合、tbl
の列は Y
を含めてすべて予測子として扱われます。
応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1 つの行に対応しなければなりません。
データ型: char
| string
Y
— クラス ラベル
categorical 配列 | 文字配列 | string 配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
クラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。Y
のデータ型は tbl
または X
と同じでなければなりません。(string 配列は文字ベクトルの cell 配列として扱われます)。
Y
の型は ens
の学習に使用した分類と同じでなければならず、要素数は tbl
または X
の行数と等しくなければなりません。
データ型: categorical
| char
| string
| logical
| single
| double
| cell
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: edge(Mdl,X,Mode="individual",UseParallel=true)
は、学習させた学習器ごとに 1 つの要素をもつベクトルを出力し、並列に実行するように指定します。
Learners
— 弱学習器のインデックス
[1:ens.NumTrained]
(既定値) | 正の整数のベクトル
edge
で使用するアンサンブル内の弱学習器のインデックス。範囲 [1:ens.NumTrained
] の正の整数のベクトルとして指定します。既定では、すべての学習器が使用されます。
例: Learners=[1 2 4]
データ型: single
| double
Mode
— 出力の集約レベル
"ensemble"
(既定値) | "individual"
| "cumulative"
出力の集約レベル。"ensemble"
、"individual"
、または "cumulative"
として指定します。
値 | 説明 |
---|---|
"ensemble" | 出力は、アンサンブル全体に対する損失を表すスカラー値になります。 |
"individual" | 出力は、学習させた学習器ごとに 1 つの要素をもつベクトルになります。 |
"cumulative" | 出力は、学習器の入力リストから学習器 1:J を使用して要素 J が取得されたベクトルになります。 |
例: Mode="individual"
データ型: char
| string
UseParallel
— 並列実行のフラグ
false
または 0
(既定値) | true
または 1
並列実行のフラグ。数値または logical の 1
(true
) または 0
(false
) として指定します。UseParallel=true
を指定した場合、関数 edge
は parfor
を使用して for
ループの反復を実行します。Parallel Computing Toolbox™ がある場合、ループが並列に実行されます。
例: UseParallel=true
データ型: logical
Weights
— 観測値の重み
ones(size(X,1),1)
(既定値) | 数値ベクトル | tbl
内の変数の名前
観測値の重み。数値ベクトルまたは tbl
内の変数の名前を指定します。重みを指定すると、edge
は重み付きの分類エッジを計算します。
Weights
として数値ベクトルを指定する場合、Weights
のサイズは X
または tbl
内の観測値の個数と等しくなければなりません。合計が各クラスの事前確率の値と等しくなるように Weights
が正規化されます。
tbl
内の変数名を Weights
として指定する場合、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、重みが tbl.w
として格納されている場合、Weights
として "w"
を指定します。それ以外の場合、tbl
の列は tbl.w
を含めてすべて予測子として扱われます。
データ型: single
| double
| char
| string
詳細
マージン
分類マージンは、真のクラスの分類スコアと、偽のクラスの最大分類スコアの差を表します。マージンは、行列 X
と同じ行数をもつ列ベクトルです。
スコア (アンサンブル)
アンサンブルの場合、分類スコアは分類の信頼度をクラスで表したものです。スコアが高いほど、信頼度も高くなります。
アンサンブル アルゴリズムが異なれば、スコアの定義も違ってきます。さらに、スコアの範囲はアンサンブル タイプによって異なります。以下に例を示します。
AdaBoostM1
スコアの範囲は –∞ ~ ∞ です。Bag
スコアの範囲は0
~1
です。
分類エッジ
"エッジ" は、分類マージンの加重平均値です。重みは ens
.Prior
のクラス確率です。名前と値の引数 Weights
で重みを指定すると、それらの重みがクラス確率の代わりに使用されます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、この関数を呼び出すときに名前と値の引数 UseParallel
を true
に設定します。
並列計算の全般的な情報については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
名前と値の引数 UseParallel
は、tall 配列、GPU 配列、コード生成では使用できません。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
関数
edge
では代理分岐をもつ決定木学習器を使用して学習させたアンサンブルはサポートしていません。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入R2022a: 既定以外のコスト行列をもつモデルに対して edge
で異なる値が返される
入力モデル オブジェクトに学習させるときに既定以外のコスト行列を指定すると、関数 edge
で以前のリリースとは異なる値が返されます。
関数 edge
は、Prior
プロパティに格納された事前確率を使用して入力データの観測値の重みを正規化します。Prior
プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつモデルについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、Cost property stores the user-specified cost matrixを参照してください。
ソフトウェアでコスト行列、事前確率、および観測値の重みを以前のリリースと同じように扱う場合は、誤分類コスト行列に応じた事前確率と観測値の重みの調整の説明に従って、既定以外のコスト行列の事前確率と観測値の重みを調整します。その後、分類モデルに学習させるときに、調整後の事前確率と観測値の重みを名前と値の引数 Prior
と Weights
を使用して指定し、既定のコスト行列を使用します。
R2022a: 欠損値がある予測子データに対して edge
で NaN が返されることがある
関数 edge
で分類マージンの加重平均を計算する際に、スコアが NaN の観測値が省略されなくなりました。そのため、現在は、予測子データ X
または tbl
内の予測子変数に欠損値がある場合に edge
で NaN が返されることがあります。ほとんどの場合、テスト セットの観測値に予測子の欠損がなければ、関数 edge
で NaN が返されることはありません。
この変更により、fitcauto
を使用する場合の分類モデルの自動選択が改善されます。この変更の前は、NaN 以外の予測子が少ないモデルが選択される (新しいデータの分類に最適であると予測される) ことがありました。
コードの edge
で NaN が返される場合、このような結果にならないようにコードを更新できます。rmmissing
または fillmissing
を使用して、欠損値を削除するか置き換えます。
次の表に、オブジェクト関数 edge
で NaN が返される可能性がある分類モデルを示します。詳細については、それぞれの関数 edge
の「互換性の考慮事項」を参照してください。
モデル タイプ | 完全またはコンパクトなモデル オブジェクト | オブジェクト関数 edge |
---|---|---|
判別分析分類モデル | ClassificationDiscriminant , CompactClassificationDiscriminant | edge |
分類用のアンサンブル学習器 | ClassificationEnsemble , CompactClassificationEnsemble | edge |
ガウス カーネル分類モデル | ClassificationKernel | edge |
k 最近傍分類モデル | ClassificationKNN | edge |
線形分類モデル | ClassificationLinear | edge |
ニューラル ネットワーク分類モデル | ClassificationNeuralNetwork , CompactClassificationNeuralNetwork | edge |
サポート ベクター マシン (SVM) 分類モデル | edge |
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)