Main Content

ClassificationEnsemble Predict

決定木のアンサンブルを使用して観測値を分類

  • ライブラリ:
  • Statistics and Machine Learning Toolbox / Classification

説明

ClassificationEnsemble Predict ブロックは、マルチクラス分類用の決定木のアンサンブル (ClassificationEnsembleClassificationBaggedEnsemble、または CompactClassificationEnsemble) を使用して観測値を分類します。

オブジェクトを含むワークスペース変数の名前を指定することにより、学習済みの分類オブジェクトをブロックにインポートします。入力端子 [x] では観測値 (予測子データ) を受信し、出力端子 [label] では観測値の予測クラス ラベルを返します。オプションの出力端子 [score] を追加すると、予測クラス スコアまたは事後確率が返されます。

端子

入力

すべて展開する

予測子データ。1 つの観測値の行ベクトルまたは列ベクトルとして指定します。

依存関係

[x] の変数の順序は、[Select trained machine learning model] で指定されたモデルで学習済みの、予測子変数の順序と同じでなければなりません。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

出力

すべて展開する

予測クラス ラベル。スカラーとして返されます。スコアが最大になるクラスが予測クラスになります。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

予測クラス スコアまたは事後確率。サイズが 1 行 k 列の行ベクトルとして返されます。ここで、k は木モデル内のクラスの数です。

クラスの順序を確認するには、[Select trained machine learning model] で指定された木モデルの ClassNames プロパティを使用します。

依存関係

  • この端子を有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [Add output port for predicted class scores] のチェック ボックスをオンにします。

  • 分類スコアの値の定義と範囲はアンサンブル集約法によって異なります。アンサンブル集約法は、アンサンブル モデルに学習させるときに fitcensemble の名前と値の引数 'Method' を使用して指定できます。詳細については、関数 predict のリファレンス ページの詳細節を参照してください。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

パラメーター

すべて展開する

メイン

ClassificationEnsemble オブジェクト、ClassificationBaggedEnsemble オブジェクト、または CompactClassificationEnsemble オブジェクトを含むワークスペース変数の名前を指定します。

fitcensemble を使用してモデルに学習させる場合、次の制限が適用されます。

  • 木弱学習器を使用してアンサンブルに学習させなければなりません。

  • 予測子データにカテゴリカル予測子 (logicalcategoricalcharstring、または cell) を含めることはできません。学習データをテーブルで渡す場合、予測子は数値 (double または single) でなければなりません。また、名前と値の引数 CategoricalPredictors は使用できません。カテゴリカル予測子をモデルに含めるには、モデルを当てはめる前に dummyvar を使用してカテゴリカル予測子を前処理します。

  • 名前と値の引数 'ScoreTransform' の値を 'invlogit' や無名関数にすることはできません。

  • 木弱学習器に代理分岐は使用できません。つまり、関数 templateTree を使用して木弱学習器を定義する場合、名前と値の引数 'Surrogate' の値は 'off' (既定の設定) でなければなりません。

プログラムでの使用

ブロック パラメーター: TrainedLearner
型: ワークスペース変数
値: ClassificationEnsemble オブジェクト | ClassificationBaggedEnsemble オブジェクト | CompactClassificationEnsemble オブジェクト
既定の設定: 'ensMdl'

チェック ボックスをオンにすると、ClassificationEnsemble Predict ブロックに 2 番目の出力端子 [score] が追加されます。

プログラムでの使用

ブロック パラメーター: ShowOutputScore
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

データ型

固定小数点が使用可能なパラメーター

固定小数点演算の丸めモードを指定します。詳細は、丸め (Fixed-Point Designer)を参照してください。

ブロック パラメーターは常に、最も近い表現可能な値に丸められます。ブロック パラメーターの丸めを制御するには、マスク フィールドに MATLAB® の丸め関数を使用して式を入力します。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

オーバーフローの際に飽和するか折り返すかを指定します。

アクション理由オーバーフローの際の影響

このチェック ボックスをオンにする (on)。

モデルにオーバーフローの可能性があり、生成されたコードで明示的な飽和保護が必要である。

オーバーフローの際は、データ型が表現できる最小値または最大値に飽和します。

データ型 int8 (8 ビット負号付き整数) が表現できる最大値は 127 です。この最大値よりも大きいブロック演算結果は、8 ビット整数のオーバーフローを引き起こします。チェック ボックスをオンにすると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値の -128 で飽和します。

このチェック ボックスをオフにする (off)。

生成されたコードの効率を最適化したい。

ブロックが範囲外の信号を処理する方法を過剰指定したくない。詳細は、信号範囲のエラーのトラブルシューティング (Simulink)を参照してください。

オーバーフローの際は、データ型が表現できる適切な値で折り返します。

データ型 int8 (8 ビット負号付き整数) が表現できる最大値は 127 です。この最大値よりも大きいブロック演算結果は、8 ビット整数のオーバーフローを引き起こします。チェック ボックスをオフにすると、オーバーフローを引き起こす値が int8 として解釈され、意図しない結果になる可能性があります。たとえば、130 (バイナリでは 1000 0010) というブロック結果が int8 として表現されると、-126 になります。

プログラムでの使用

ブロック パラメーター: SaturateOnIntegerOverflow
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

このパラメーターを選択して、ブロックに指定したデータ型を固定小数点ツールがオーバーライドしないようにします。詳細は、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'
データ型

[label] 出力のデータ型を指定します。型は継承するか、列挙データ型として指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現できます。

継承オプションを選択すると、ソフトウェアは以下のように動作します。

  • Inherit: Inherit via back propagation (数値ラベルと logical ラベルの場合の既定値) — Simulink は、データ型の伝播時にブロックの [Label data type] を自動的に決定します (データ型の伝播 (Simulink)を参照)。この場合、ブロックは下流ブロックまたは信号オブジェクトのデータ型を使用します。

  • Inherit: auto (非数値ラベルの場合の既定値) — ブロックは自動定義された列挙データ型変数を使用します。たとえば、Select trained machine learning model で指定されたワークスペース変数名が myMdl で、クラス ラベルが class 1 および class 2 であるとします。この場合、対応する [label] の値は myMdl_enumLabels.class_1 および myMdl_enumLabels.class_2 になります。ブロックは、関数 matlab.lang.makeValidName を使用して、クラス ラベルを有効な MATLAB 識別子に変換します。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

依存関係

サポートされるデータ型は、Select trained machine learning model で指定されたモデルで使用されるラベルによって異なります。

  • モデルで数値ラベルまたは logical ラベルが使用される場合、サポートされるデータ型は [Inherit: Inherit via back propagation] (既定)、doublesinglehalfint8uint8int16uint16int32uint32int64uint64boolean、固定小数点およびデータ型オブジェクトです。

  • モデルで非数値ラベルが使用される場合、サポートされるデータ型は [Inherit: auto] (既定)、Enum: <class name> およびデータ型オブジェクトです。

プログラムでの使用

ブロック パラメーター: LabelDataTypeStr
: 文字ベクトル
: 'Inherit: Inherit via back propagation' | 'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | '<data type expression>'
既定の設定: 'Inherit: Inherit via back propagation' (数値ラベルと logical ラベルの場合) | 'Inherit: auto' (非数値ラベルの場合)

Simulink® がチェックする [label] 出力範囲の下限値。

Simulink は以下を実行するために最小値を使用します。

メモ

[Label minimum] パラメーターが、[label] の実際の出力信号を飽和させたり、クリップしたりすることはありません。代わりに、Saturation (Simulink) ブロックを使用してください。

依存関係

このパラメーターを指定できるのは、Select trained machine learning model で指定されたモデルで数値ラベルが使用される場合だけです。

プログラムでの使用

ブロック パラメーター: LabelOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする [label] 出力範囲の上限値。

Simulink は以下を実行するために最大値を使用します。

メモ

[Label maximum] パラメーターが、[label] の実際の出力信号を飽和させたり、クリップしたりすることはありません。代わりに、Saturation (Simulink) ブロックを使用してください。

依存関係

このパラメーターを指定できるのは、Select trained machine learning model で指定されたモデルで数値ラベルが使用される場合だけです。

プログラムでの使用

ブロック パラメーター: LabelOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

[score] 出力のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

[Inherit: auto] を選択すると、ブロックはデータ型を継承するルールを使用します。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: ScoreDataTypeStr
: 文字ベクトル
: 'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
既定の設定: 'Inherit: auto'

Simulink がチェックする [score] 出力範囲の下限値。

Simulink は以下を実行するために最小値を使用します。

メモ

[Score minimum] パラメーターが、[score] の実際の信号を飽和させたり、クリップしたりすることはありません。代わりに、Saturation (Simulink) ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: ScoreOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする [score] 出力範囲の上限値。

Simulink は以下を実行するために最大値を使用します。

メモ

[Score maximum] パラメーターが、[score] の実際の信号を飽和させたり、クリップしたりすることはありません。代わりに、Saturation (Simulink) ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: ScoreOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

内部の未変換スコアのデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

[Inherit: auto] を選択すると、ブロックはデータ型を継承するルールを使用します。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

依存関係

このパラメーターを指定できるのは、Select trained machine learning model で指定されたモデルで 'none' (既定の設定で、'identity' と同じ) 以外のスコア変換が使用される場合だけです。

  • モデルでスコア変換が使用されない ('none' または 'identity') 場合は、Score data type を使用してスコアのデータ型を指定できます。

  • モデルで 'none' または 'identity' 以外のスコア変換が使用される場合は、このパラメーターを使用して未変換の生スコアのデータ型を指定し、Score data type を使用して変換したスコアのデータ型を指定できます。

スコア変換オプションを変更するには、学習時に名前と値の引数 'ScoreTransform' を指定するか、学習後に ScoreTransform プロパティを変更します。

プログラムでの使用

ブロック パラメーター: RawScoreDataTypeStr
: 文字ベクトル
: 'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
既定の設定: 'Inherit: auto'

Simulink がチェックする未変換スコア範囲の下限値。

Simulink は以下を実行するために最小値を使用します。

メモ

[Raw score minimum] パラメーターが、未変換スコアの実際の信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

ブロック パラメーター: RawScoreOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする未変換スコア範囲の上限値。

Simulink は以下を実行するために最大値を使用します。

メモ

[Raw score maximum] パラメーターが、未変換スコアの実際の信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

ブロック パラメーター: RawScoreOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

弱学習器からの出力のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

[Inherit: auto] を選択すると、ブロックはデータ型を継承するルールを使用します。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: WeakLearnerDataTypeStr
: 文字ベクトル
: 'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
既定の設定: 'Inherit: auto'

Simulink がチェックする弱学習器出力範囲の下限値。

Simulink は以下を実行するために最小値を使用します。

メモ

[Weak learner minimum] パラメーターが、弱学習器の実際の出力信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

ブロック パラメーター: WeakLearnerOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする弱学習器出力範囲の上限値。

Simulink は以下を実行するために最大値を使用します。

メモ

[Weak learner maximum] パラメーターが、弱学習器の実際の出力信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

ブロック パラメーター: WeakLearnerOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

ブロックの特性

データ型

Boolean | double | enumerated | fixed point | half | integer | single

直達

yes

多次元信号

no

可変サイズの信号

no

ゼロクロッシング検出

no

代替機能

MATLAB Function ブロックを決定木のアンサンブル (ClassificationEnsembleClassificationBaggedEnsemble、または CompactClassificationEnsemble) のオブジェクト関数 predict と共に使用できます。たとえば、MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。

Statistics and Machine Learning Toolbox™ ライブラリ内の ClassificationEnsemble Predict ブロックを使用するかどうか、または MATLAB Function ブロックを関数 predict と共に使用するかどうかを判断する際には、以下を考慮してください。

  • Statistics and Machine Learning Toolbox ライブラリ ブロックを使用する場合、固定小数点ツール (Fixed-Point Designer)を使用して浮動小数点モデルを固定小数点に変換できます。

  • MATLAB Function ブロックを関数 predict と共に使用する場合は、可変サイズの配列に対するサポートを有効にしなければなりません。

  • MATLAB Function ブロックを使用する場合、予測の前処理や後処理のために、同じ MATLAB Function ブロック内で MATLAB 関数を使用することができます。

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2021a で導入