このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ClassificationECOC Predict
ライブラリ:
Statistics and Machine Learning Toolbox /
Classification
説明
ClassificationECOC Predict ブロックは、マルチクラス分類用の誤り訂正出力符号 (ECOC) 分類モデル (ClassificationECOC
または CompactClassificationECOC
) を使用して観測値を分類します。
オブジェクトを含むワークスペース変数の名前を指定することにより、学習済みの分類オブジェクトをブロックにインポートします。入力端子 x では観測値 (予測子データ) を受信し、出力端子 label では観測値の予測クラス ラベルを返します。オプションの出力端子 score および pbscore を追加すると、score は予測クラス スコア (符号を反転した平均バイナリ損失) を返し、pbscore はバイナリ学習器の陽性クラスのスコアを返します。
例
端子
入力
x — 予測子データ
行ベクトル | 列ベクトル
予測子データ。1 つの観測値の行ベクトルまたは列ベクトルとして指定します。
x の変数の順序は、[学習済み機械学習モデルを選択] で指定されたモデルに学習させた予測子変数の順序と同じでなければなりません。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
出力
label — 予測クラス ラベル
スカラー
予測クラス ラベル。スカラーとして返されます。label はスコアが最高になるクラスです。詳細については、オブジェクト関数 predict
の引数 label
を参照してください。
ブロックでは 2 つの復号化方式をサポートしています。ブロックでバイナリ損失をどのように集計して分類スコアを計算するかを指定する方式と、ブロックで各観測値の予測クラスをどのように判定するかを指定する方式です。詳細については、復号化スキームおよびバイナリ損失と復号化方式を参照してください。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
score — 予測クラス スコア
行ベクトル
予測クラス スコアまたは符号を反転した平均バイナリ損失。サイズが 1 行 K 列の行ベクトルとして返されます。ここで、K は ECOC モデル内のクラスの数です。
クラスの順序を確認するには、[学習済み機械学習モデルを選択] で指定されたモデルの ClassNames
プロパティを使用します。
依存関係
この端子を有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [予測済みクラス スコア用の出力端子を追加] のチェック ボックスをオンにします。
ブロックでは 2 つの復号化方式をサポートしています。ブロックでバイナリ損失をどのように集計して分類スコアを計算するかを指定する方式と、ブロックで各観測値の予測クラスをどのように判定するかを指定する方式です。詳細については、復号化スキームおよびバイナリ損失と復号化方式を参照してください。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
pbscore — バイナリ学習器の陽性クラスのスコア
行ベクトル
バイナリ学習器の陽性クラスのスコア。サイズが 1 行 B 列の行ベクトルとして返されます。ここで、B は ECOC モデル内のバイナリ学習器の数です。
バイナリ学習器のクラス割り当て符号を確認するには、[学習済み機械学習モデルを選択] で指定されたモデルの CodingMatrix
プロパティを使用します。詳細については、ClassificationECOC
オブジェクトの符号化設計を参照してください。
依存関係
この端子を有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [バイナリ学習器の陽性クラスのスコアに対する出力端子を追加] のチェック ボックスをオンにします。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
パラメーター
メイン
学習済みの機械学習モデルの選択 — ECOC 分類モデル
ecocMdl
(既定値) | ClassificationECOC
オブジェクト | CompactClassificationECOC
オブジェクト
ClassificationECOC
または CompactClassificationECOC
モデル オブジェクトを含むワークスペース変数の名前を指定します。
fitcecoc
を使用してモデルに学習させる場合、以下の制限が適用されます。
SVM 学習器または線形学習器を使用して ECOC モデルに学習させる必要があります。
SVM 学習器の場合は、名前と値の引数
Learners
を"svm"
、templateSVM
を使用して作成された SVM テンプレート オブジェクト、または SVM テンプレート オブジェクトの cell 配列として指定できます。線形学習器の場合は、名前と値の引数
Learners
を"linear"
、templateLinear
を使用して作成された線形テンプレート オブジェクト、または線形テンプレート オブジェクトの cell 配列として指定できます。テンプレート オブジェクトのLambda
の値 (正則化項の強度) は数値スカラーでなければなりません。
予測子データにカテゴリカル予測子 (
logical
、categorical
、char
、string
、またはcell
) を含めることはできません。学習データをテーブルで渡す場合、予測子は数値 (double
またはsingle
) でなければなりません。また、名前と値の引数CategoricalPredictors
は使用できません。カテゴリカル予測子をモデルに含めるには、モデルを当てはめる前にdummyvar
を使用してカテゴリカル予測子を前処理します。
プログラムでの使用
ブロック パラメーター: TrainedLearner |
型: ワークスペース変数 |
値: ClassificationECOC オブジェクト | CompactClassificationECOC オブジェクト |
既定の設定: 'ecocMdl' |
予測済みクラス スコア用の出力端子を追加 (符号を反転した平均バイナリ損失) — 2 番目の出力端子を追加
off
(既定値) | on
チェック ボックスをオンにすると、ClassificationECOC Predict ブロックに 2 番目の出力端子 score が追加されます。
プログラムでの使用
ブロック パラメーター: ShowOutputScore |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
バイナリ学習器の陽性クラスのスコアに対する出力端子を追加 — 3 番目の出力端子を追加
off
(既定値) | on
チェック ボックスをオンにすると、ClassificationECOC Predict ブロックに 3 番目の出力端子 pbscore が追加されます。
プログラムでの使用
ブロック パラメーター: ShowOutputPBScore |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
バイナリ学習器の損失関数 — バイナリ学習器損失関数
hinge
(既定値) | binodeviance
| exponential
| hamming
| linear
| logit
| quadratic
バイナリ学習器の損失関数を [binodeviance]
、[exponential]
、[hamming]
、[hinge]
、[linear]
、[logit]
、または [quadratic]
として指定します。
次の表に推奨されるバイナリ損失関数を示します。推奨される関数は、バイナリ学習器が返すスコアの範囲によって異なります。
仮定 | 推奨値 |
---|---|
すべてのバイナリ学習器がロジスティック回帰学習器の線形分類モデルである。 | quadratic |
すべてのバイナリ学習器が SVM であるか、SVM 学習器の線形分類モデルである。 | hinge |
ECOC モデルに学習させるときに を設定して、クラスの事後確率を予測するように指定している。 | quadratic |
損失関数の定義については、バイナリ損失と復号化方式を参照してください。
プログラムでの使用
ブロック パラメーター: BinaryLoss |
型: 文字ベクトル |
値: 'binodeviance' | 'exponential' | 'hamming' | 'hinge' | 'linear' | 'logit' | 'quadratic' |
既定の設定: 'hinge' |
復号化スキーム — 復号化スキーム
lossweighted
(既定値) | lossbased
バイナリ損失を集計する復号化方式を [lossbased]
または [lossweighted]
として指定します。
score の値の定義は [復号化スキーム] の値によって異なります。
[lossbased]
を指定した場合、score の k 番目の要素はバイナリ損失の合計をバイナリ学習器の総数で割った値になります。[lossweighted]
を指定した場合、score の k 番目の要素はバイナリ損失の合計を k 番目のクラスに対するバイナリ学習器の数で割った値になります。
詳細については、バイナリ損失と復号化方式を参照してください。
プログラムでの使用
ブロック パラメーター: Decoding |
型: 文字ベクトル |
値: 'lossbased' | 'lossweighted' |
既定の設定: 'lossweighted' |
データ型
固定小数点が使用可能なパラメーター整数丸めモード — 固定小数点演算の丸めモード
Floor
(既定値) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
固定小数点演算の丸めモードを指定します。詳細は、丸め (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に、最も近い表現可能な値に丸められます。ブロック パラメーターの丸めを制御するには、マスク フィールドに MATLAB® の丸め関数を使用して式を入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: "Ceiling" | "Convergent" | "Floor" | "Nearest" | "Round" | "Simplest" | "Zero" |
既定の設定: "Floor" |
整数オーバーフローで飽和 — オーバーフロー アクションのメソッド
off
(既定値) | on
オーバーフローの際に飽和するか折り返すかを指定します。
アクション | 理由 | オーバーフローの際の影響 | 例 |
---|---|---|---|
このチェック ボックスをオンにする ( | モデルにオーバーフローの可能性があり、生成されたコードで明示的な飽和保護が必要である。 | オーバーフローの際は、データ型が表現できる最小値または最大値に飽和します。 | データ型 |
このチェック ボックスをオフにする ( | 生成されたコードの効率を最適化したい。 ブロックが範囲外の信号を処理する方法を過剰指定したくない。詳細は、信号範囲のエラーのトラブルシューティング (Simulink)を参照してください。 | オーバーフローの際は、データ型が表現できる適切な値で折り返します。 | データ型 |
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
固定小数点ツールによる変更に対して出力データ型の設定をロックする — 固定小数点ツールによるデータ型のオーバーライドの防止
off
(既定値) | on
このパラメーターを選択して、ブロックに指定したデータ型を固定小数点ツールがオーバーライドしないようにします。詳細は、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: "off" | "on" |
既定の設定: "off" |
Label data type — label 出力のデータ型
Inherit: Inherit via back propagation
| Inherit: auto
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| Enum: <クラス名>
| <データ型式>
label 出力のデータ型を指定します。型は継承するか、列挙データ型として指定するか、Simulink.NumericType
のようにデータ型オブジェクトとして表現できます。
サポートされるデータ型は、[学習済み機械学習モデルを選択] で指定されたモデルで使用されるラベルによって異なります。
モデルで数値ラベルまたは logical ラベルが使用される場合、サポートされるデータ型は [
Inherit: Inherit via back propagation
] (既定)、double
、single
、half
、int8
、uint8
、int16
、uint16
、int32
、uint32
、int64
、uint64
、boolean
、固定小数点およびデータ型オブジェクトです。モデルで非数値ラベルが使用される場合、サポートされるデータ型は [
Inherit: auto
] (既定)、Enum: <class name>
およびデータ型オブジェクトです。
継承オプションを選択すると、ソフトウェアは以下のように動作します。
Inherit: Inherit via back propagation
(数値ラベルと logical ラベルの場合の既定値) — Simulink® は、データ型の伝播時にブロックの [ラベルのデータ型] を自動的に決定します (データ型の伝播 (Simulink)を参照)。この場合、ブロックは下流ブロックまたは信号オブジェクトのデータ型を使用します。Inherit: auto
(非数値ラベルの場合の既定値) — ブロックは自動定義された列挙データ型変数を使用します。たとえば、[学習済み機械学習モデルを選択] で指定されたワークスペース変数名がmyMdl
で、クラス ラベルがclass 1
およびclass 2
であるとします。この場合、対応する label の値はmyMdl_enumLabels.class_1
およびmyMdl_enumLabels.class_2
になります。ブロックは、関数matlab.lang.makeValidName
を使用して、クラス ラベルを有効な MATLAB 識別子に変換します。
データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。
[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
プログラムでの使用
ブロック パラメーター: LabelDataTypeStr |
型: 文字ベクトル |
値: "Inherit: Inherit via back propagation" | "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "Enum: <class name>" | "<data type expression>" |
既定の設定: "Inherit: Inherit via back propagation" (数値ラベルと logical ラベルの場合) | "Inherit: auto" (非数値ラベルの場合) |
ラベルのデータ型、最小値 — 範囲チェックの label 出力の最小値
[]
(既定値) | スカラー
Simulink がチェックする label 出力範囲の下限値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[ラベルのデータ型、最小値] パラメーターが、label の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
依存関係
このパラメーターを指定できるのは、[学習済み機械学習モデルを選択] で指定されたモデルで数値ラベルが使用される場合だけです。
プログラムでの使用
ブロック パラメーター: LabelOutMin |
型: 文字ベクトル |
値: "[]" | スカラー |
既定の設定: "[]" |
ラベルのデータ型、最大値 — 範囲チェックの label 出力の最大値
[]
(既定値) | スカラー
Simulink がチェックする label 出力範囲の上限値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[ラベルのデータ型、最大値] パラメーターが、label の実際の出力信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
依存関係
このパラメーターを指定できるのは、[学習済み機械学習モデルを選択] で指定されたモデルで数値ラベルが使用される場合だけです。
プログラムでの使用
ブロック パラメーター: LabelOutMax |
型: 文字ベクトル |
値: "[]" | スカラー |
既定の設定: "[]" |
Score data type — score 出力のデータ型
Inherit: auto
(既定値) | double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <データ型式>
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,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>" |
既定の設定: "Inherit: auto" |
スコアのデータ型、最小値 — 範囲チェックの score 出力の最小値
[]
(既定値) | スカラー
Simulink がチェックする score 出力範囲の下限値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[スコアのデータ型、最小値] パラメーターが、score の実際の出力を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: ScoreOutMin |
型: 文字ベクトル |
値: "[]" | スカラー |
既定の設定: "[]" |
スコアのデータ型、最大値 — 範囲チェックの score 出力の最大値
[]
(既定値) | スカラー
Simulink がチェックする score 出力範囲の上限値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[スコアのデータ型、最大値] パラメーターが、score の実際の出力を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: ScoreOutMax |
型: 文字ベクトル |
値: "[]" | スカラー |
既定の設定: "[]" |
陽性クラスのスコアのデータ型 — 陽性クラスのスコアのデータ型
Inherit: auto
(既定値) | double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <データ型式>
pbscore 出力のデータ型を指定します。このデータ型により、バイナリ学習器の分類スコアのデータ型も決まります。データ型は継承するか、直接指定するか、Simulink.NumericType
のようにデータ型オブジェクトとして表現することができます。
[Inherit: auto]
を選択すると、ブロックはデータ型を継承するルールを使用します。
データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。
[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
プログラムでの使用
ブロック パラメーター: PBScoreDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'Inherit: auto' |
陽性クラスのスコアのデータ型、最小値 — 範囲チェックの pbscore
出力の最小値
[]
(既定値) | スカラー
Simulink がチェックする pbscore 出力範囲の下限値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[陽性クラスのスコアのデータ型、最小値] パラメーターが、pbscore の実際の信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: PBScoreOutMin |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
陽性クラスのスコアのデータ型、最大値 — 範囲チェックの pbscore
出力の最大値
[]
(既定値) | スカラー
Simulink がチェックする pbscore 出力範囲の上限値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[陽性クラスのスコアのデータ型、最大値] パラメーターが、pbscore の実際の信号を飽和させたり、クリップしたりすることはありません。これを行うには、代わりに Saturation (Simulink) ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: PBScoreOutMax |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
Kernel data type — バイナリ学習器のカーネル計算用のデータ型
double
(既定値) | single
| half
| int8
| uint8
| int16
| uint16
| int32
| int64
| uint64
| uint32
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <データ型式>
バイナリ学習器のカーネル計算用のパラメーターのデータ型を指定します。型は直接指定するか、Simulink.NumericType
のようにデータ型オブジェクトとして表現できます。
データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。
[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
依存関係
このパラメーターを指定できるのは、[学習済み機械学習モデルを選択] で指定されたモデルで SVM 学習器が使用される場合だけです。モデルで線形学習器が使用される場合は、代わりに [内積データ型] を指定します。
[カーネルのデータ型] パラメーターは、指定した SVM 学習器のカーネル関数のタイプによって、異なるパラメーターのデータ型を指定します。関数 templateSVM
の名前と値の引数 KernelFunction
を使用してカーネル関数のタイプを指定します。templateSVM
の出力を関数 fitcecoc
の名前と値の引数 Learners
の値として渡す必要があります。
KernelFunction の値 | データ型 |
---|---|
'gaussian' または 'rbf' | このパラメーターは、ガウス カーネル の平方距離 のデータ型を指定します。ここで、x は観測値の予測子データで、s はサポート ベクターです。 |
'linear' | このパラメーターは、線形カーネル関数 の出力のデータ型を指定します。ここで、x は観測値の予測子データで、s はサポート ベクターです。 |
'polynomial' | このパラメーターは、多項式カーネル関数 の出力のデータ型を指定します。ここで、x は観測値の予測子データ、s はサポート ベクター、p は多項式カーネル関数の次数です。 |
プログラムでの使用
ブロック パラメーター: KernelDataTypeStr |
型: 文字ベクトル |
値: 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'uint64' | 'int64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'double' |
カーネルのデータ型、最小値 — 範囲チェックのカーネル計算用の最小値
[]
(既定値) | スカラー
Simulink がチェックするカーネル計算用の内部変数範囲の下限値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[カーネルのデータ型、最小値] パラメーターが、カーネル計算値の実際の信号を飽和させたり、クリップしたりすることはありません。
プログラムでの使用
ブロック パラメーター: KernelOutMin |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
カーネルのデータ型、最大値 — 範囲チェックのカーネル計算用の最大値
[]
(既定値) | スカラー
Simulink がチェックするカーネル計算用の内部変数範囲の上限値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[カーネルのデータ型、最大値] パラメーターが、カーネル計算値の実際の信号を飽和させたり、クリップしたりすることはありません。
プログラムでの使用
ブロック パラメーター: KernelOutMax |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
内積データ型 — バイナリ学習器の内積データ型
継承: 内部ルールによる継承
(既定値) | double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| boolean
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <データ型式>
バイナリ学習器の分類スコアの内積項のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType
のようにデータ型オブジェクトとして表現することができます。
[継承: 内部ルールによる継承]
を選択した場合、ブロックは内部ルールを使用して、出力データ型を決定します。内部ルールでは、組み込みターゲット ハードウェアのプロパティを考慮しながら、数値の精度、パフォーマンス、および生成されたコードのサイズを最適化するデータ型が選択されます。常に効率と数値の精度を同時に最適化できるとは限りません。
データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。
[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
依存関係
このパラメーターを指定できるのは、[学習済み機械学習モデルを選択] で指定されたモデルで線形学習器が使用される場合だけです。モデルで SVM 学習器が使用される場合は、代わりに [カーネルのデータ型] を指定します。
線形分類学習器の場合、観測値 x を陽性クラスに分類する分類スコアは次のように定義されます。
f(x) = xβ+b.
β は推定された係数の列ベクトル、b は推定されたスカラー バイアスです。係数とバイアスは、ECOC モデル オブジェクト内の各線形分類学習器の Beta
プロパティと Bias
プロパティにそれぞれ格納されます。
モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換がバイナリ学習器の分類スコアに適用されます。x を陰性クラスに分類する分類スコアは -f(x) です。このソフトウェアでは、各バイナリ学習器のスコアが陽性になるクラスに観測値が分類されます。
[内積データ型] を使用して xβ のデータ型を決定し、[陽性クラスのスコアのデータ型 を使用してバイナリ学習器の分類スコアのデータ型を決定します。
プログラムでの使用
ブロック パラメーター: InnerProductDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
内積データ型、最小値 — 範囲チェックの内積項の最小値
[]
(既定値) | スカラー
Simulink がチェックする内積項範囲の下限値を指定します。
Simulink は以下を実行するために最小値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、ソフトウェアインザループ (SIL) モードやエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[内積データ型、最小値] パラメーターが、内積の実際の値を飽和させたり、クリップしたりすることはありません。
プログラムでの使用
ブロック パラメーター: InnerProductOutMin |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
内積データ型、最大値 — 範囲チェックの内積項の最大値
[]
(既定値) | スカラー
Simulink がチェックする内積項範囲の上限値を指定します。
Simulink は以下を実行するために最大値を使用します。
一部のブロックを対象としたパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定 (Simulink)を参照)。
シミュレーション範囲のチェック (信号範囲の指定 (Simulink)およびシミュレーション範囲のチェックの有効化 (Simulink)を参照)。
固定小数点データ型の自動スケーリング。
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなど、一部のシミュレーション モードの結果に影響を与える可能性があります。詳細は、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[内積データ型、最大値] パラメーターが、内積の実際の値を飽和させたり、クリップしたりすることはありません。
プログラムでの使用
ブロック パラメーター: InnerProductOutMax |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
バイナリ損失と復号化方式
"バイナリ損失" は、バイナリ学習器がどの程度の精度で観測値をクラスに分類するかを決定する、クラスと分類スコアの関数です。ソフトウェアでバイナリ損失をどのように集計して各観測値の予測クラスを判定するかは、ECOC モデルの "復号化方式" で指定します。
以下のように仮定します。
mkj は符号化設計行列 M の要素 (k,j)、つまりバイナリ学習器 j のクラス k に対応する符号。M は K 行 B 列の行列であり、K はクラスの数、B はバイナリ学習器の数です。
sj は観測値に対するバイナリ学習器 j のスコア。
g はバイナリ損失関数。
は観測値の予測クラス。
ブロックでは 2 つの復号化方式をサポートしています。
ブロックは、それぞれの観測値とクラスについて、argmin
の目的関数の符号反転値を 2 番目の出力端子 (score
) として返します。
次の表は、サポートされる損失関数をまとめたものです。ここで、yj は特定のバイナリ学習器のクラス ラベル (集合 {–1,1,0} 内)、sj は観測値 j のスコア、g(yj,sj) はバイナリ損失関数です。バイナリ損失関数は [バイナリ学習器の損失関数] を使用して指定できます。
値 | 説明 | スコア領域 | g(yj,sj) |
---|---|---|---|
'binodeviance' | 二項分布からの逸脱度 | (–∞,∞) | log[1 + exp(–2yjsj)]/[2log(2)] |
'exponential' | 指数 | (–∞,∞) | exp(–yjsj)/2 |
'hamming' | ハミング | [0,1] または (–∞,∞) | [1 – sign(yjsj)]/2 |
'hinge' | ヒンジ | (–∞,∞) | max(0,1 – yjsj)/2 |
'linear' | 線形 | (–∞,∞) | (1 – yjsj)/2 |
'logit' | ロジスティック | (–∞,∞) | log[1 + exp(–yjsj)]/[2log(2)] |
'quadratic' | 2 次 | [0,1] | [1 – yj(2sj – 1)]2/2 |
yj = 0 のときに損失が 0.5 になるようにバイナリ損失が正規化され、バイナリ学習器の平均が集計に使用されます[1]。
代替機能
MATLAB Function ブロックを ECOC 分類オブジェクト (ClassificationECOC
または CompactClassificationECOC
) のオブジェクト関数 predict
と共に使用できます。たとえば、MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。
Statistics and Machine Learning Toolbox™ ライブラリ内の ClassificationECOC Predict ブロックを使用するかどうか、または MATLAB Function ブロックを関数 predict
と共に使用するかどうかを判断する際には、以下を考慮してください。
Statistics and Machine Learning Toolbox ライブラリ ブロックを使用する場合、固定小数点ツール (Fixed-Point Designer)を使用して浮動小数点モデルを固定小数点に変換できます。
MATLAB Function ブロックを関数
predict
と共に使用する場合は、可変サイズの配列に対するサポートを有効にしなければなりません。MATLAB Function ブロックを使用する場合、予測の前処理や後処理のために、同じ MATLAB Function ブロック内で MATLAB 関数を使用することができます。
参照
[1] Allwein, E., R. Schapire, and Y. Singer. “Reducing multiclass to binary: A unifying approach for margin classifiers.” Journal of Machine Learning Research. Vol. 1, 2000, pp. 113–141.
[2] Escalera, S., O. Pujol, and P. Radeva. “Separability of ternary codes for sparse designs of error-correcting output codes.” Pattern Recog. Lett., Vol. 30, Issue 3, 2009, pp. 285–297.
[3] Escalera, S., O. Pujol, and P. Radeva. “On the decoding process in ternary error-correcting output codes.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 32, Issue 7, 2010, pp. 120–134.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2023a で導入
参考
ブロック
オブジェクト
関数
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)