このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
ClassificationSVMCoderConfigurer
1クラスおよびバイナリ分類用のサポートベクターマシン(SVM)のコーダーコンフィギュアラー
説明
ClassificationSVMCoderConfigurer
オブジェクトは,svm分類モデル(ClassificationSVM
またはCompactClassificationSVM
)のコ,ダ,コンフィギュアラ,です。
コーダーコンフィギュアラーには,コード生成オプションの設定,C / c++コードの生成,および生成されたコード内のモデルパラメーターの更新を行うための便利な機能があります。
コード生成オプションを設定し,オブジェクトのプロパティを使用してSVMモデルパラメーターのコーダー属性を指定します。
generateCode
を使用して,svm分類モデルの関数预测
および更新
に対してc / c++コドを生成します。C/ c++コ,ドの生成にはMATLAB®编码器™が必要です。コドを再生成せずに,生成されたc / c++コドのモデルパラメタを更新します。この機能により,新しいデータまたは設定でSVMモデルに再学習をさせるときに,C / c++コードの再生成,再展開および再確認に必要な作業が低減されます。モデルパラメ,タ,を更新する前に,
validatedUpdateInputs
を使用して更新対象のモデルパラメ,タ,を検証および抽出します。
次のフローチャートは,コーダーコンフィギュアラーを使用するコード生成のワークフローを示します。
支持向量机分類モデルのコド生成に関する使用上の注意および制限にいては,CompactClassificationSVM
、预测
および更新
の“コ,ド生成”セクションを参照してください。
作成
fitcsvm
を使用してSVM分類モデルに学習をさせた後で,learnerCoderConfigurer
を使用してモデルのコ,ダ,コンフィギュアラ,を作成します。コ,ダ,コンフィギュアラ,のプロパティを使用して,预测
および更新
の引数のコ,ダ,属性を指定します。その後,generateCode
を使用して,指定したコダ属性に基づくc / c++コドを生成します
プロパティ
预测
の引数
この節に記載されているプロパティは,生成されるコ,ドにおける関数预测
の引数のコ,ダ,属性を指定します。
X
- - - - - -予測子デ,タのコ,ダ,属性
LearnerCoderInput
オブジェクト
支持向量机分類モデルの関数预测
に対して生成されるc / c++コドに渡す,予測子デタのコダ属性。LearnerCoderInput
オブジェクトを指定します。
関数learnerCoderConfigurer
を使用してコ,ダ,コンフィギュアラ,を作成する場合,入力引数X
はLearnerCoderInput
のコ,ダ,属性の既定値を決定します。
SizeVector
-既定値は入力X
の配列サ@ @ズです。VariableDimensions
-この値は[0 0]
(既定)または[1 0]
です。[0 0]
は,SizeVector
の指定に従って配列サ@ @ズを固定することを示します。[1 0]
は,配列の行が可変サaapl .ズ,列が固定サaapl .ズであることを示します。この場合,SizeVector
の1番目の値は行数の上限,SizeVector
の2番目の値は列数です。
数据类型
-この値は单
または双
です。既定のデ,タ型は,入力X
のデ,タ型に依存します。可调谐性
-この値は,生成されるc / c++コドの预测
に必ず予測子デ,タを入力として含めることを意味する真正的
でなければなりません。
コ,ダ,属性は,ドット表記を使用して変更できます。たとえば,3 つの予測子変数の 100 個の観測値が含まれている予測子データを受け入れる C/C++ コードを生成するには、コーダー コンフィギュアラー配置
のX
のコ,ダ,属性を次のように指定します。
configuration . x . sizevector = [100 3];configurer.X.DataType =“双”;configuration . x . variabledimensions = [0 0];
[0 0]
は,X
の1番目および2番目の次元(それぞれ観測値の個数と予測子変数の個数)が固定サイズであることを示します。
生成されるC / c++コードが,最大100個の観測値がある予測子データを受け入れるようにするには,次のようにX
のコ,ダ,属性を指定します。
configuration . x . sizevector = [100 3];configurer.X.DataType =“双”;configuration . x . variabledimensions = [10];
[1 0]
は,X
の1番目の次元(観測値の個数)が可変サX
の2番目の次元(予測子変数の個数)が固定サesc escズであることを示します。指定した観測値の個数(この例では100)は,生成されるC / c++コードで許容される観測値の最大数になります。任意の個数の観測値を可能にするには,上限として正
を指定します。
NumOutputs
- - - - - -预测
の出力の個数
1(既定値) |2
支持向量机分類モデルの関数预测
に対して生成されるc / c++コドから返される出力引数の個数。1または2を指定します。
预测
の出力引数は,順番に标签
(予測されたクラスラベル)および分数
(スコアまたは事後確率)です。生成されたc / c++コドの预测
は,関数预测
の最初のn
個の出力を返します。n
はNumOutputs
の値です。
コダコンフィギュアラ配置
を作成した後で,ドット表記を使用して出力の個数を指定できます。
配置。NumOutputs= 2;
NumOutputs
プロパティは,codegen
(MATLAB编码器)のコンパ@ @ラオプション“-nargout”
と等価です。このオプションは,コ,ド生成のエントリポ,ント関数における出力引数の個数を指定します。オブジェクト関数generateCode
は,svm分類モデルの関数预测
および更新
に対してpredict.m
およびupdate.m
という2つのエントリポイント関数をそれぞれ生成し,この2つのエントリポイント関数に対してC / c++コードを生成します。NumOutputs
プロパティにいて指定した値は,エントリポント関数predict.m
の出力引数の個数に対応します。
デ,タ型:双
更新
の引数
この節に記載されているプロパティは,生成されるコ,ドにおける関数更新
の引数のコ,ダ,属性を指定します。関数更新
は,学習済みモデルと新しいモデルパラメーターを入力引数として受け入れ,新しいパラメーターが含まれている更新されたバージョンのモデルを返します。生成コード内のパラメーターを更新できるようにするには,コード生成の前にパラメーターのコーダー属性を指定する必要があります。各パラメ,タ,のコ,ダ,属性を指定するには,LearnerCoderInput
オブジェクトを使用します。既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
のモデルパラメ,タ,に基づきます。
α
- - - - - -学習済み分類器の係数のコ,ダ,属性
LearnerCoderInput
オブジェクト
学習済み分類器の係数(支持向量机分類モデルのα
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-既定値は(年代,1)
です。年代
は,Mdl
内のサポ,トベクタ,の個数です。VariableDimensions
-この値は[0 0]
(既定)または[1 0]
です。[0 0]
は,SizeVector
の指定に従って配列サ@ @ズを固定することを示します。[1 0]
は,配列の行が可変サaapl .ズ,列が固定サaapl .ズであることを示します。この場合,SizeVector
の1番目の値は行数の上限,SizeVector
の2番目の値は列数です。
数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-線形カ,ネル関数が含まれているモデルに学習をさせるときに,線形予測子の係数(β
)がモデルに格納されており,サポ,トベクタ,および関連する値は格納されていない場合,この値は假
でなければなりません。それ以外の場合,この値は真正的
でなければなりません。
β
- - - - - -線形予測子の係数のコ,ダ,属性
LearnerCoderInput
オブジェクト
線形予測子の係数(支持向量机分類モデルのβ
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-この値は(1页)
でなければなりません。p
は,Mdl
内の予測子の個数です。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-線形カ,ネル関数が含まれているモデルに学習をさせるときに,線形予測子の係数(β
)がモデルに格納されており,サポ,トベクタ,および関連する値は格納されていない場合,この値は真正的
でなければなりません。それ以外の場合,この値は假
でなければなりません。
偏见
- - - - - -バアス項のコダ属性
LearnerCoderInput
オブジェクト
バ▪▪アス項(支持向量机分類モデルの偏见
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-この値は[1]
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-この値は真正的
でなければなりません。
成本
- - - - - -誤分類コストのコ,ダ,属性
LearnerCoderInput
オブジェクト
誤分類コスト(支持向量机分類モデルの成本
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
—バesc escナリ分類の場合、この値は(2 - 2)
でなければなりません。1クラス分類の場合、この値は[1]
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
—バesc escナリ分類の場合、既定値は真正的
です。1クラス分類の場合、この値は假
でなければなりません。
μ
- - - - - -予測子の平均のコ,ダ,属性
LearnerCoderInput
オブジェクト
予測子の平均(支持向量机分類モデルのμ
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
- - - - - -
を指定することにより,標準化された予測子デ,タを使用して“标准化”
,真正的Mdl
に学習をさせる場合,この値は(1, p)
でなければなりません。p
はMdl
内の予測子の個数です。それ以外の場合,この値は(0,0)
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
- - - - - -
を指定することにより,標準化された予測子デ,タを使用して“标准化”
,真正的Mdl
に学習をさせる場合,既定値は真正的
です。それ以外の場合,この値は假
でなければなりません。
之前
- - - - - -事前確率のコ,ダ,属性
LearnerCoderInput
オブジェクト
事前確率(支持向量机分類モデルの之前
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
—バesc escナリ分類の場合、この値は(1 2)
でなければなりません。1クラス分類の場合、この値は[1]
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
—バesc escナリ分類の場合、既定値は真正的
です。1クラス分類の場合、この値は假
でなければなりません。
规模
- - - - - -カネルスケルパラメタのコダ属性
LearnerCoderInput
オブジェクト
カ,ネルスケ,ルパラメ,タ,(支持向量机分類モデルのKernelParameters
.Scale
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-この値は[1]
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-既定値は真正的
です。
σ
- - - - - -予測子の標準偏差のコ,ダ,属性
LearnerCoderInput
オブジェクト
予測子の標準偏差(支持向量机分類モデルのσ
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
- - - - - -
を指定することにより,標準化された予測子デ,タを使用して“标准化”
,真正的Mdl
に学習をさせる場合,この値は(1, p)
でなければなりません。p
はMdl
内の予測子の個数です。それ以外の場合,この値は(0,0)
でなければなりません。VariableDimensions
-この値は,SizeVector
の指定に従って配列サ@ @ズを固定することを示す[0 0]
でなければなりません。数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
- - - - - -
を指定することにより,標準化された予測子デ,タを使用して“标准化”
,真正的Mdl
に学習をさせる場合,既定値は真正的
です。それ以外の場合,この値は假
でなければなりません。
万博1manbetxSupportVectorLabels
- - - - - -サポ,トベクタ,のクラスラベルのコ,ダ,属性
LearnerCoderInput
オブジェクト
サポ,トベクタ,のクラスラベル(支持向量机分類モデルの万博1manbetxSupportVectorLabels
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-既定値は(年代,1)
です。年代
は,Mdl
内のサポ,トベクタ,の個数です。VariableDimensions
-この値は[0 0]
(既定)または[1 0]
です。[0 0]
は,SizeVector
の指定に従って配列サ@ @ズを固定することを示します。[1 0]
は,配列の行が可変サaapl .ズ,列が固定サaapl .ズであることを示します。この場合,SizeVector
の1番目の値は行数の上限,SizeVector
の2番目の値は列数です。
数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-線形カ,ネル関数が含まれているモデルに学習をさせるときに,線形予測子の係数(β
)がモデルに格納されており,サポ,トベクタ,および関連する値は格納されていない場合,この値は假
でなければなりません。それ以外の場合,この値は真正的
でなければなりません。
万博1manbetxSupportVectors
- - - - - -サポ,トベクタ,のコ,ダ,属性
LearnerCoderInput
オブジェクト
サポ,トベクタ,(支持向量机分類モデルの万博1manbetxSupportVectors
)のコ,ダ,属性。LearnerCoderInput
オブジェクトを指定します。
LearnerCoderInput
オブジェクトの既定の属性値は,learnerCoderConfigurer
の入力引数Mdl
に基づきます。
SizeVector
-既定値は(s, p)
です。年代
はMdl
内のサポ,トベクタ,の個数,p
は予測子の個数です。VariableDimensions
-この値は[0 0]
(既定)または[1 0]
です。[0 0]
は,SizeVector
の指定に従って配列サ@ @ズを固定することを示します。[1 0]
は,配列の行が可変サaapl .ズ,列が固定サaapl .ズであることを示します。この場合,SizeVector
の1番目の値は行数の上限,SizeVector
の2番目の値は列数です。
数据类型
-この値は“单一”
または“双”
です。既定のデ,タ型は,Mdl
の学習に使用する学習デ,タのデ,タ型に一致します。可调谐性
-線形カ,ネル関数が含まれているモデルに学習をさせるときに,線形予測子の係数(β
)がモデルに格納されており,サポ,トベクタ,および関連する値は格納されていない場合,この値は假
でなければなりません。それ以外の場合,この値は真正的
でなければなりません。
他のコンフィギュアラ,のオプション
OutputFileName
- - - - - -生成されるc / c++コドのファル名
“ClassificationSVMModel”
(既定値) |文字ベクトル
生成されるc / c++コドのファル名。文字ベクトルを指定します。
ClassificationSVMCoderConfigurer
のオブジェクト関数generateCode
c / c++コドを生成します。
オペレーティングシステムの構成によってはコード生成に失敗する可能性があるので,ファイル名には空白を含めないでください。また,名前は有効なmatlab関数名でなければなりません。
コダコンフィギュアラ配置
を作成した後で,ドット表記を使用してファ。
配置。OutputFileName =“myModel”;
デ,タ型:字符
详细的
- - - - - -詳細レベル
真正的
(逻辑1)(既定値) |假
(逻辑0)
詳細レベル。真正的
(逻辑1)または假
(逻辑0)を指定します。詳細レベルは,コマンド ラインにおける通知メッセージの表示を制御します。
値 | 説明 |
---|---|
真正的 (逻辑1) |
パラメーターのコーダー属性に対する変更によって他の従属するパラメーターが変化する場合,通知メッセージが表示されます。 |
假 (逻辑0) |
通知メッセ,ジは表示されません。 |
生成コード内の機械学習のモデルパラメーターを更新できるようにするには,コード生成の前にパラメーターのコーダー属性を構成する必要があります。パラメ,タ,のコ,ダ,属性は互いに依存するので,依存関係が構成の制約として保存されます。コダコンフィギュアラを使用してパラメーターのコーダー属性を変更するときに、構成の制約を満たすために他の従属するパラメーターも変更する必要がある場合、従属するパラメーターのコーダー属性が変更されます。詳細レベルは、これらの引き続いて起きた変更についてメッセージを表示するかどうかを決定します。
コダコンフィギュアラ配置
を作成した後で,ドット表記を使用して詳細レベルを変更できます。
配置。详细的= false;
デ,タ型:逻辑
コド生成のカスタマズのオプション
コド生成ワクフロをカスタマズするには,関数generateCode
を使用するのではなく,関数generateFiles
と以下の3のプロパティをcodegen
(MATLAB编码器)で使用します。
関数generateFiles
を使用して2のエントリポント関数ファル(predict.m
およびupdate.m
)を生成した後で,独自のコ,ド生成ワ,クフロ,に従って,これらのファ,ルを変更できます。たとえば,predict.m
ファイルを変更してデータの前処理を含めたり,これらのエントリポイント関数を別のコード生成プロジェクトに追加したりできます。その後,関数codegen
と,変更したエントリポcodegen
(MATLAB编码器)の引数とを使用してc / c++コドを生成できます。引数codegen
を設定するための出発点として,このセクションで説明されている3のプロパティを使用します。
CodeGenerationArguments
- - - - - -codegen
の引数
细胞配列
このプロパティは読み取り専用です。
codegen
(MATLAB编码器)の引数。细胞配列を指定します。
このプロパティにより,コド生成ワクフロをカスタマズできます。ワクフロをカスタマズする必要がない場合は関数generateCode
を使用します。
generateCode
をコダコンフィギュアラ配置
に対して使用する代わりに,次のようにしてc / c++コ,ドを生成できます。
generateFiles(配置程序)cgArgs = configuration . codegenerationarguments;codegen (cgArgs {}):
codegen
を呼び出す前にcgArgs
を変更します。
配置
の他のプロパティを変更すると,それに従ってCodeGenerationArguments
プロパティが更新されます。
デ,タ型:细胞
PredictInputs
- - - - - -预测
の入力引数
编码器。PrimitiveType
オブジェクトのcell配列
このプロパティは読み取り専用です。
コド生成用のエントリポント関数predict.m
の入力引数。编码器。PrimitiveType
(MATLAB编码器)オブジェクトのcell配列を指定します。编码器。PrimitiveType
オブジェクトには,X
プロパティに格納されている予測子デ,タのコ,ダ,属性が含まれています。
予測子デ,タのコ,ダ,属性を変更すると,それに従って编码器。PrimitiveType
オブジェクトが更新されます。
PredictInputs
の编码器。PrimitiveType
オブジェクトは,コ,ダ,コンフィギュアラ,配置
の配置。CodeGenerationArguments {6}
と等価です。
デ,タ型:细胞
UpdateInputs
- - - - - -更新
の調整可能な入力引数のリスト
编码器。PrimitiveType
オブジェクトが含まれている構造体のcell配列
このプロパティは読み取り専用です。
コド生成用のエントリポント関数update.m
の調整可能な入力引数のリスト。编码器。PrimitiveType
(MATLAB编码器)オブジェクトが含まれている構造体のcell配列を指定します。各编码器。PrimitiveType
オブジェクトには,調整可能な機械学習モデルパラメ,タ,のコ,ダ,属性が格納されます。
コ、ダ、コンフィギュアラ、のプロパティ(更新
の引数のプロパティ)を使用してモデルパラメ,タ,のコ,ダ,属性を変更すると,それに従って対応する编码器。PrimitiveType
オブジェクトが更新されます。機械学習モデルパラメ,タ,の可调谐性
属性として假
を指定した場合,対応する编码器。PrimitiveType
オブジェクトがUpdateInputs
のリストから削除されます。
UpdateInputs
の構造体は,コ,ダ,コンフィギュアラ,配置
の配置。CodeGenerationArguments {3}
と等価です。
デ,タ型:细胞
オブジェクト関数
generateCode |
コダコンフィギュアラの使用によるc / c++コドの生成 |
generateFiles |
コ,ダ,コンフィギュアラ,を使用するコ,ド生成用MATLABファ@ @ルの生成 |
validatedUpdateInputs |
更新する機械学習モデルのパラメ,タ,の検証および抽出 |
例
コ,ダ,コンフィギュアラ,の使用によるコ,ドの生成
機械学習モデルに学習させてから,コ,ダ,コンフィギュアラ,を使用して,このモデルの関数预测
および更新
に対してコ,ドを生成します。
电离层
デタセットを読み込み,バナリ支持向量机分類モデルに学習をさせます。
负载电离层Mdl = fitcsvm(X,Y);
Mdl
は,ClassificationSVM
オブジェクトです。
learnerCoderConfigurer
を使用して,ClassificationSVM
モデルに。予測子デ,タX
を指定します。関数learnerCoderConfigurer
は,入力X
を使用して,関数预测
の入力のコ,ダ,属性を設定します。
configurer = learnerCoderConfigurer(Mdl,X)
configurer = ClassificationSVMCoderConfigurer带属性:更新输入:Alpha: [1x1 LearnerCoderInput] SupportVectors: [1x1 Lea万博1manbetxrnerCoderInput] SupportVectorLabels: [1x1 LearnerCoderInput] Scale: [1x1 LearnerCoderInput] Bias: [1x1 LearnerCoderInput] Prior: [1x1 LearnerCoderInput] Cost: [1x1 LearnerCoderInput] Predict input: X: [1x1 LearnerCoderInput]代码生成参数:NumOutputs: 1 OutputFileName: ' classificationsvdermodel '属性,方法
配置
は,ClassificationSVM
オブジェクトのコ,ダ,コンフィギュアラ,であるClassificationSVMCoderConfigurer
オブジェクトです。
C / c++コードを生成するには,適切に設定されているC / c++コンパイラにアクセスできなければなりません。MATLAB编码器は,サポ,トされている,ンスト,ラを探して使用します。墨西哥人
设置
を使用すると,既定のコンパ。詳細は,既定のコンパ@ @ラの変更を参照してください。
既定の設定を使用して,svm分類モデル(Mdl
)の関数预测
および更新
に対するコ,ドを生成します。
generateCode(配置)
generateCode在output文件夹中创建这些文件:米”、“预测。米”、“更新。米”、“ClassificationSVMModel。代码生成成功。
関数generateCode
は,以下の処理を実行します。
コドを生成するために必要なmatlabファルを生成する。これには,
Mdl
の関数预测
および更新
にそれぞれ対応する2のエントリポント関数predict.m
およびupdate.m
が含まれます。2のエントリポント関数に対して,
ClassificationSVMModel
という名前のmex関数を作成する。Mex関数のコ,ドを
codegen \墨西哥人\ ClassificationSVMModel
フォルダ,に作成する。Mex関数を現在のフォルダ,にコピ,する。
関数类型
を使用して,predict.m
、update.m
およびinitialize.m
ファ@ @ルの内容を表示します。
类型predict.m
函数varargout = predict(X,varargin) %#代码原%由MATLAB自动生成,25- january -2022 08:25:39 [varargout{1:nargout}] =初始化('predict',X,varargin{:});结束
类型update.m
函数更新(varargin) %#codegen %由MATLAB自动生成,25-Jan-2022 08:25:39 initialize('update',varargin{:});结束
类型initialize.m
function [varargout] = initialize(command,varargin) %#codegen %由MATLAB自动生成,25- january 2022 08:25:39 code .inline('always')持久化模型if isempty(模型)model = loadLearnerForCoder('ClassificationSVMModel.mat');end switch(command) case 'update' %更新结构字段:Alpha % SupportVectors %万博1manbetx SupportVectorLabels % Scale % Bias % Prior % Cost model = update(model,varargin{:});预测输入:X X = varargin{1};if nargin == 2 [varargout{1:nargout}] = predict(模型,X);else PVPairs = cell(1,nargin-2);如果i = 1:nargin-2 pvairs {1,i} = varargin{i+1};end [varargout{1:nargout}] = predict(model,X,PVPairs{:});结束结束
生成されたコドにおけるSVM分類モデルのパラメタの更新
データセットの一部を使用してSVMモデルに学習をさせ,モデルについてコーダーコンフィギュアラーを作成します。コーダーコンフィギュアラーのプロパティを使用して,SVMモデルパラメーターのコーダー属性を指定します。コダコンフィギュアラのオブジェクト関数を使用して,新しい予測子データについてラベルを予測する C コードを生成します。その後、データセット全体を使用してモデルに再学習をさせ、コードを再生成せずに、生成されたコードのパラメーターを更新します。
モデルの学習
电离层
デ,タセットを読み込みます。このデタセットには,レダ反射にいての34個の予測子と,不良(“b”
)または良好(‘g’
)という351個の二項反応が含まれています。最初の50個の観測値を使用して,バesc escナリSVM分類モデルに学習をさせます。
负载电离层Mdl = fitcsvm(X(1:50,:),Y(1:50));
Mdl
は,ClassificationSVM
オブジェクトです。
コ,ダ,コンフィギュアラ,の作成
learnerCoderConfigurer
を使用して,ClassificationSVM
モデルに。予測子デ,タX
を指定します。関数learnerCoderConfigurer
は,入力X
を使用して,関数预测
の入力のコ,ダ,属性を設定します。また,生成されるコードが予測ラベルおよびスコアを返すようにするため,出力の個数を2に設定します。
配置器= learnerCoderConfigurer(Mdl,X(1:50,:)),“NumOutputs”2);
配置
は,ClassificationSVM
オブジェクトのコ,ダ,コンフィギュアラ,であるClassificationSVMCoderConfigurer
オブジェクトです。
パラメ,タ,のコ,ダ,属性の指定
生成されたコードのパラメーターをモデルの再学習後に更新できるようにするため,支持向量机分類モデルのパラメーターのコーダー属性を指定します。この例では,生成されたコードに渡す予測子データのコーダー属性と,SVMモデルのサポートベクターのコーダー属性を指定します。
はじめに,生成されたコ,ドが任意の個数の観測値を受け入れるように,X
のコ,ダ,属性を指定します。属性SizeVector
およびVariableDimensions
を変更します。属性SizeVector
は、予測子デ、タのサ、ズの上限を指定し、属性VariableDimensions
は,予測子デ,タの各次元が可変サ。
configuration . x . sizevector = [Inf 34];configuration . x . variabledimensions = [true false];
1番目の次元のサaapl . exeズは,観測値の個数です。このケスでは,サズの上限が正
であり,サ▪▪▪▪▪ズが可変,▪▪▪▪まりX
の観測値の個数が任意であることを指定します。この指定は,コ,ドを生成するときに観測値の個数が不明である場合に便利です。
2番目の次元のサaapl . exeズは,予測子変数の個数です。この値は,機械学習モデルに対し固定でなければなりません。X
には34個の予測子が含まれているので,属性SizeVector
の値は34,属性VariableDimensions
の値は假
でなければなりません。
新しいデータまたは異なる設定を使用してSVMモデルに再学習をさせた場合,サポートベクターの個数が変化する可能性があります。したがって,生成されたコ,ドのサポ,トベクタ,を更新できるように万博1manbetxSupportVectors
のコ,ダ,属性を指定します。
configurati万博1manbetxon . supportvectors . sizevector = [250 34];
Alpha的SizeVector属性已被修改以满足配置约束。SupportVectorLabels的SizeV万博1manbetxector属性已被修改以满足配置约束。
configurati万博1manbetxon . supportvectors . variabledimensions = [true false];
Alpha的VariableDimensions属性已被修改以满足配置约束。已修改SupportVectorLabels的VariableDi万博1manbetxmensions属性以满足配置约束。
万博1manbetxSupportVectors
のコ,ダ,属性が変更されると,α
および万博1manbetxSupportVectorLabels
のコ,ダ,属性が構成の制約を満たすように変更されます。あるパラメーターのコーダー属性の変更によって構成の制約を満たすために他の従属パラメーターの変更が必要になる場合,従属パラメーターのコーダー属性は変更されます。
コ,ドの生成
C / c++コードを生成するには,適切に設定されているC / c++コンパイラにアクセスできなければなりません。MATLAB编码器は,サポ,トされている,ンスト,ラを探して使用します。墨西哥人
设置
を使用すると,既定のコンパ。詳細は,既定のコンパ@ @ラの変更を参照してください。
generateCode
を使用して,svm分類モデル(Mdl
)の関数预测
および更新
にいて,既定の設定でコドを生成します。
generateCode(配置)
generateCode在output文件夹中创建这些文件:米”、“预测。米”、“更新。米”、“ClassificationSVMModel。代码生成成功。
generateCode
は,コ,ドを生成するために必要なmatlabファ,ルを生成します。これには,Mdl
の関数预测
および更新
にそれぞれ対応する2のエントリポント関数predict.m
およびupdate.m
が含まれます。次にgenerateCode
は,2のエントリポClassificationSVMModel
という名前のmex関数をcodegen \墨西哥人\ ClassificationSVMModel
フォルダ,内に作成し,このmex関数を現在のフォルダ,にコピ,します。
生成されたコ,ドの確認
予測子デ,タを渡して,Mdl
の関数预测
とmex関数の関数预测
が同じラベルを返すかどうかを確認します。複数のエントリポイントがある墨西哥人関数内のエントリポイント関数を呼び出すため,1番目の入力引数として関数名を指定します。
[label,score] = predict(Mdl,X);[label_mex,score_mex] = ClassificationSVMModel(“预测”, X);
isequal
を使用して,标签
とlabel_mex
を比較します。
label_mex isequal(标签)
ans =逻辑1
すべての入力が等しい場合,isequal
は逻辑1 (真正的
)を返します。この比較により,同じラベルをMdl
の関数预测
とmex関数の関数预测
が返すことを確認します。
分数
と比較すると,score_mex
には丸めによる差が含まれている場合があります。このような場合は,小さい誤差を許容してscore_mex
と分数
を比較します。
Find (abs(score-score_mex) > 1e-8)
Ans = 0x1空双列向量
この比較により,許容誤差1 e-8
内で分数
とscore_mex
が等しいことを確認します。
モデルの再学習と生成コ,ド内のパラメ,タ,の更新
デ,タセット全体を使用してモデルに再学習をさせます。
retrainedMdl = fitcsvm(X,Y);
validatedUpdateInputs
を使用して,更新するパラメ,タ,を抽出します。この関数は,retrainedMdl
内の修正されたモデルパラメーターを判別し,修正されたパラメーター値がパラメーターのコーダー属性を満たすかどうかを検証します。
params = validatedUpdateInputs(配置器,retrainedMdl);
生成されたコ,ド内のパラメ,タ,を更新します。
ClassificationSVMModel (“更新”params)
生成されたコ,ドの確認
retrainedMdl
の関数预测
の出力と,更新したmex関数の関数预测
の出力を比較します。
[label,score] = predict(retrainedMdl,X);[label_mex,score_mex] = ClassificationSVMModel(“预测”, X);label_mex isequal(标签)
ans =逻辑1
Find (abs(score-score_mex) > 1e-8)
Ans = 0x1空双列向量
この比較により,标签
とlabels_mex
が等しく,スコアの値が許容誤差内で等しいことを確認します。
詳細
LearnerCoderInput
オブジェクト
コ,ダ,コンフィギュアラ,は,LearnerCoderInput
オブジェクトを使用して预测
および更新
の入力引数のコ,ダ,属性を指定します。
LearnerCoderInput
オブジェクトには,生成されるコードにおける入力引数配列のプロパティを指定するための属性として,次のようなものがあります。
属性名 | 説明 |
---|---|
SizeVector |
対応する 対応する |
VariableDimensions |
配列の各次元が可変サ▪▪ズと固定サ▪▪ズのど▪らであるかを指定する▪▪ンジケ▪▪タ▪。
|
数据类型 |
配列のデ,タ型 |
可调谐性 |
生成されるコ,ドで引数を入力として
|
コダコンフィギュアラを作成した後で,ドット表記を使用してコダ属性を変更できます。たとえば,コ,ダ,コンフィギュアラ,配置
の係数α
のコ,ダ,属性を指定するには,次のようにします。
configuration . alpha . sizevector = [100 1];configuration . alpha . variabledimensions = [1 0];configurer.Alpha.DataType =“双”;
详细的
)として真正的
(既定)を指定した場合,機械学習モデルのパラメーターのコーダー属性を変更することによって他の従属するパラメーターのコーダー属性が変化すると,通知メッセージが表示されます。
バ,ジョン履歴
R2018bで導入
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。