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 ionosphereAdaBoostM1 を使用して 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 または ClassificationBaggedEnsemble モデル オブジェクト、または compact で作成した CompactClassificationEnsemble モデル オブジェクトとして指定します。
標本データ。table として指定します。tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。tbl には、モデルを学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
table に格納されている標本データを使用して ens に学習させた場合、edge の入力データも table に含まれていなければなりません。
データ型: table
応答変数の名前。tbl 内の変数の名前で指定します。ens を学習させるために使用した応答変数が tbl に含まれている場合、ResponseVarName を指定する必要はありません。
ResponseVarName を指定する場合は、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、応答変数 Y が tbl.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
名前と値の引数
オプションの引数のペアを 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
並列実行のフラグ。数値または logical の 1 (true) または 0 (false) として指定します。UseParallel=true を指定した場合、関数 edge は parfor を使用して 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スコアの範囲は0~1です。
"エッジ" は、分類マージンの加重平均値です。重みは ens.Prior のクラス確率です。名前と値の引数 Weights で重みを指定すると、それらの重みがクラス確率の代わりに使用されます。
拡張機能
並列実行するには、この関数を呼び出すときに名前と値の引数 UseParallel を true に設定します。
並列計算の全般的な情報については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
名前と値の引数 UseParallel は、tall 配列、GPU 配列、コード生成では使用できません。
使用上の注意および制限:
関数
edgeでは代理分岐をもつ決定木学習器を使用して学習させたアンサンブルはサポートしていません。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入入力モデル オブジェクトに学習させるときに既定以外のコスト行列を指定すると、関数 edge で以前のリリースとは異なる値が返されます。
関数 edge は、Prior プロパティに格納された事前確率を使用して入力データの観測値の重みを正規化します。Prior プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつモデルについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、Cost プロパティにユーザー指定のコスト行列を格納を参照してください。
ソフトウェアでコスト行列、事前確率、および観測値の重みを以前のリリースと同じように扱う場合は、誤分類コスト行列に応じた事前確率と観測値の重みの調整の説明に従って、既定以外のコスト行列の事前確率と観測値の重みを調整します。その後、分類モデルに学習させるときに、調整後の事前確率と観測値の重みを名前と値の引数 Prior と Weights を使用して指定し、既定のコスト行列を使用します。
関数 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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)