Main Content

RegressionSVM Predict

サポート ベクター マシン (SVM) 回帰モデルの使用による応答の予測

R2020b 以降

  • RegressionSVM Predict Block Icon

ライブラリ:
Statistics and Machine Learning Toolbox / Regression

説明

RegressionSVM Predict ブロックは、SVM 回帰オブジェクト (RegressionSVM または CompactRegressionSVM) を使用して応答を予測します。

オブジェクトを含むワークスペース変数の名前を指定することにより、学習済みの SVM 回帰オブジェクトをブロックにインポートします。入力端子 x では観測値 (予測子データ) を受信し、出力端子 yfit では観測値の予測応答を返します。

端子

入力

すべて展開する

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

x の変数の順序は、[学習済み機械学習モデルを選択] で指定された SVM モデルに学習させた予測子変数の順序と同じでなければなりません。

SVM モデルに学習をさせるときに fitrsvm'Standardize',true を設定した場合、RegressionSVM Predict ブロックは、SVM モデルの Mu プロパティにある平均と Sigma プロパティにある標準偏差を使用して、[x] の値を標準化します。

データ型: 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

パラメーター

すべて展開する

メイン

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

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

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

  • 名前と値の引数 ResponseTransform の値は 'none' (既定の設定) でなければなりません。

  • 名前と値の引数 KernelFunction の値は、'gaussian''linear' (既定の設定)、または 'polynomial' でなければなりません。

プログラムでの使用

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

データ型

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

固定小数点演算の丸めモードを指定します。詳細は、丸め (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"
データ型

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

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

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

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

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: "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"

Simulink® がチェックする yfit 出力範囲の下限値を指定します。

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

メモ

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

プログラムでの使用

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

Simulink がチェックする yfit 出力範囲の上限値を指定します。

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

メモ

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

プログラムでの使用

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

カーネル計算用のパラメーターのデータ型を指定します。型は直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現できます。

[Kernel data type] パラメーターは、指定した SVM モデルのカーネル関数のタイプによって、異なるパラメーターのデータ型を指定します。SVM モデルに学習させている場合は、名前と値の引数 KernelFunction を指定します。

'KernelFunction'データ型
'gaussian' または 'rbf'[Kernel data type] は、ガウス カーネル G(x,s)=exp(D2) の平方距離 D2=xs2 のデータ型を指定します。ここで、x は観測値の予測子データで、s はサポート ベクターです。
'linear'[Kernel data type] は、線形カーネル関数 G(x,s)=xs' の出力のデータ型を指定します。ここで、x は観測値の予測子データで、s はサポート ベクターです。
'polynomial'[Kernel data type] は、多項式カーネル関数 G(x,s)=(1+xs')p の出力のデータ型を指定します。ここで、x は観測値の予測子データ、s はサポート ベクター、p は多項式カーネル関数の次数です。

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

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

プログラムでの使用

ブロック パラメーター: 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 は以下を実行するために最小値を使用します。

メモ

[カーネルのデータ型、最小値] パラメーターが、カーネル計算値の実際の信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

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

Simulink がチェックするカーネル計算用の内部変数範囲の上限値を指定します。

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

メモ

[カーネルのデータ型、最大値] パラメーターが、カーネル計算値の実際の信号を飽和させたり、クリップしたりすることはありません。

プログラムでの使用

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

ブロックの特性

データ型

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

直達

yes

多次元信号

no

可変サイズの信号

no

ゼロクロッシング検出

no

ヒント

  • 線形 SVM モデルを使用しており、多数のサポート ベクターが含まれている場合、予測が低速になる可能性があります。線形 SVM モデルに基づく予測応答を効率的に行うには、discardSupportVectors を使用して RegressionSVM または CompactRegressionSVM オブジェクトからサポート ベクターを削除します。

代替機能

MATLAB Function ブロックを SVM 回帰オブジェクト (RegressionSVM または CompactRegressionSVM) のオブジェクト関数 predict と共に使用できます。たとえば、MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。

Statistics and Machine Learning Toolbox™ ライブラリ内の RegressionSVM 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™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2020b で導入

すべて展開する