線形回帰モデルをあてはめてから,saveLearnerForCoder
を使用してモデルを保存します。loadLearnerForCoder
を使用してモデルを読み込み,あてはめたモデルの関数预测
を呼び出す,エントリポイント関数を定義します。その後,codegen
(MATLAB编码器)を使用してC / c++コードを生成します。C / c++コードの生成にはMATLAB®编码器™が必要であることに注意してください。
この例では,コマンドラインで線形回帰モデルの予測を行うためのコード生成ワークフローについて簡単に説明します。詳細は,機械学習モデルの予測をコマンドラインで行うコードの生成を参照してください。MATLABCoder アプリを使用してコードを生成することもできます。詳細については、機械学習モデルの予測をMATLAB编码器アプリを使用して行うコードの生成を参照してください。
モデルの学習
carsmall
データセットを読み込んで,2次回帰モデルをあてはめます。
モデルの保存
saveLearnerForCoder
を使用して,あてはめた2次モデルをQLMMdl.mat
というファイルに保存します。
エントリポイント関数の定義
以下を行うmypredictQLM
という名前のエントリポイント関数を定義します。
函数[yhat, ci] = mypredictQLM (x,变长度输入宗量)% # codegen使用线性模型预测响应% MYPREDICTQLM预测n × 1的n个观察的响应%向量x,使用存储在mat文件QLMMdl中的线性模型。垫,%然后返回n × 1向量yhat中的预测。MYPREDICTQLM中的预测也返回置信区间界限% n × 2向量ci。CompactMdl = loadLearnerForCoder (“QLMMdl”);[yhat, ci] =预测(CompactMdl x,变长度输入宗量{:});结束
MATLABのアルゴリズムについてのコードを生成しようとしていることを指示するため,コンパイラ命令% # codegen
(またはプラグマ)をエントリポイント関数のシグネチャの後に追加します。この命令を追加すると,MATLAB代码分析器はコード生成時にエラーになる違反の診断と修正を支援します。
メモ:この例の右上にあるボタンをクリックしてMATLAB®で例を開くと,MATLABは例のフォルダーを開きます。このフォルダーには,エントリポイント関数のファイルが含まれています。
コードの生成
codegen
(MATLAB编码器)を使用して,エントリポイント関数のコードを生成します。Cおよびc++は静的な型の言語なので,エントリポイント関数内のすべての変数のプロパティをコンパイル時に決定しなければなりません。データ型と正確な入力配列のサイズを指定するため,特定のデータ型および配列サイズをもつ一連の値を表すMATLAB®式を渡します。名前と値のペアの引数の名前に対して编码器。常数
(MATLAB编码器)を使用します。
コンパイル時に観測値の個数が不明である場合,coder.typeof
(MATLAB编码器)を使用して可変サイズの入力を指定することもできます。詳細は,コード生成用の可変サイズ引数の指定とエントリポイント関数の入力のプロパティの指定(MATLAB编码器)を参照してください。
codegen
は,プラットフォームに依存する拡張子をもつ墨西哥人関数mypredictQLM_mex
を生成します。
生成されたコードの確認
预测
とmypredictQLM_mex
を使用して,予測および信頼区間を比較します。codegen
を呼び出したときの引数arg游戏
と同じ順序で名前と値のペアの引数を指定します。
预测
から返された値と比較すると,mypredictQLM_mex
から返された値には,丸めによる差が含まれている可能性があります。このような場合は,小さい誤差を許容して値を比較します。
この比較により,返された値が許容誤差1 e-6
内で等しいことを確認します。
比較のため,返された値をプロットします。