主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

预测

線形回帰モデルの応答を予測

説明

ypred=预测(mdlXnewは,Xnew内の点に対して予測した線形回帰モデルmdlの応答値を返します。

ypred开办) =预测(mdlXnewは,Xnewにおける応答の信頼区間も返します。

ypred开办) =预测(mdlXnew名称,值では1つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば,信頼区間の信頼度や予測タイプを指定できます。

すべて折りたたむ

carsmallデータセットから,自動車の燃費の2次モデルを重量の関数として作成します。

负载carsmallX =重量;y = MPG;mdl = fitlm (X, y,“二次”);

データに対する予測された応答を作成します。

ypred =预测(mdl X);

元の応答と予測された応答をプロットして,相違点を確認します。

情节(X, y,“o”, X, ypred“x”)传说(“数据”“预测”

图中包含一个坐标轴。轴线包含2个线型对象。这些对象表示数据、预测。

線形回帰モデルをあてはめてから,saveLearnerForCoderを使用してモデルを保存します。loadLearnerForCoderを使用してモデルを読み込み,あてはめたモデルの関数预测を呼び出す,エントリポイント関数を定義します。その後,codegen(MATLAB编码器)を使用してC / c++コードを生成します。C / c++コードの生成にはMATLAB®编码器™が必要であることに注意してください。

この例では,コマンドラインで線形回帰モデルの予測を行うためのコード生成ワークフローについて簡単に説明します。詳細は,機械学習モデルの予測をコマンドラインで行うコードの生成を参照してください。MATLABCoder アプリを使用してコードを生成することもできます。詳細については、機械学習モデルの予測をMATLAB编码器アプリを使用して行うコードの生成を参照してください。

モデルの学習

carsmallデータセットを読み込んで,2次回帰モデルをあてはめます。

负载carsmallX =重量;y = MPG;mdl = fitlm (X, y,“二次”);

モデルの保存

saveLearnerForCoderを使用して,あてはめた2次モデルをQLMMdl.matというファイルに保存します。

saveLearnerForCoder (mdl“QLMMdl”);

エントリポイント関数の定義

以下を行うmypredictQLMという名前のエントリポイント関数を定義します。

  • Xに対応する測定値と,オプションの有効な名前と値のペアの引数を受け入れる。

  • QLMMdl.mat内のあてはめ済み2次モデルを読み込む。

  • 予測と信頼区間の範囲を返す。

函数[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编码器)を参照してください。

codegenmypredictQLMarg游戏{X, coder.Constant(α),0.1,coder.Constant(同步),真正的}
代码生成成功。

codegenは,プラットフォームに依存する拡張子をもつ墨西哥人関数mypredictQLM_mexを生成します。

生成されたコードの確認

预测mypredictQLM_mexを使用して,予測および信頼区間を比較します。codegenを呼び出したときの引数arg游戏と同じ順序で名前と値のペアの引数を指定します。

Xnew = (X)进行排序;[yhat1, ci1] =预测(mdl Xnew,“α”, 0.1,“同时”,真正的);[yhat2, ci2] = mypredictQLM_mex (Xnew,“α”, 0.1,“同时”,真正的);

预测から返された値と比較すると,mypredictQLM_mexから返された値には,丸めによる差が含まれている可能性があります。このような場合は,小さい誤差を許容して値を比較します。

找到(abs (yhat1-yhat2) > 1 e-6)
Ans = 0x1空双列向量
找到(abs (ci1-ci2) > 1 e-6)
Ans = 0x1空双列向量

この比較により,返された値が許容誤差1 e-6内で等しいことを確認します。

比較のため,返された値をプロットします。

h1 =情节(X, y,“k”。);持有h2 =情节(Xnew yhat1,“罗”Xnew yhat2,“gx”);h3 =情节(Xnew ci1,的r -“线宽”4);h4 =情节(Xnew ci2,“g——”“线宽”2);传奇([h1;h2;h3 (1);h4 (1)),...“数据”预测估计的“墨西哥人估计”“预测独联体”“墨西哥人独联体”});包含(“重量”);ylabel (“英里”);

图中包含一个坐标轴。轴线包含7个线型对象。这些对象代表Data, predict estimate, MEX estimate, predict CIs, MEX CIs。

入力引数

すべて折りたたむ

線形回帰モデルオブジェクト。fitlmまたはstepwiselmを使用して作成したLinearModelオブジェクト,または紧凑的を使用して作成したCompactLinearModelオブジェクトとして指定します。

新しい予測子の入力値。表格、データセット配列または行列を指定します。Xnewの各行は1つの観測値に対応し,各列は1つの変数に対応します。

  • Xnewが表またはデータセット配列である場合,mdlPredictorNamesプロパティと同じ予測子名をもつ予測子が含まれていなければなりません。

  • Xnewが行列である場合,mdlの作成に使用した予測子入力と同じ個数の変数(列)が同じ順序で含まれていなければなりません。あてはめたモデルで予測子としては使用しなかった予測子変数もXnewに含めなければならないことに注意してください。また,mdlの作成に使用する変数は,すべて数値でなければなりません。数値予測子をカテゴリカルとして扱うには,mdlを作成するときに名前と値のペアの引数“CategoricalVars”を使用して予測子を指定します。

データ型:||表格

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)は,すべての予測子の値について同時に計算した,信頼度が99%である信頼区間开办を返します。

信頼区間の有意水準。“α”と範囲[0,1]の数値から構成されるコンマ区切りのペアとして指定します。开办の信頼度は100 (1 -α)%に等しい値です。αは,真の値が信頼区間に含まれない確率です。

例:“阿尔法”,0.01

データ型:|

予測タイプ。“预测”“曲线”または“观察”から構成されるコンマ区切りのペアとして指定します。

予測子変数Xと応答変数yに対する回帰モデルは,次の形式になります。

y = f(X) + ε,

ここでfは当てはめた回帰関数,εはランダムなノイズ項です。

  • “预测”“曲线”である場合,预测Xnewであてはめた応答f (Xnew)に対する信頼限界を予測します。

  • “预测”“观察”である場合,预测Xnewにおける応答観測値yに対する信頼限界を予測します。

ノイズ項により変動性が追加されるので,yの範囲はf (X)の範囲より広くなります。

例:“预测”,“观察”

同時信頼限界を計算するためのフラグ。“同时”と真正または假から構成されるコンマ区切りのペアとして指定します。

  • 真正的- - - - - -预测は,シェッフェの方法を使用して,Xnew内のすべての予測子の値に対応する応答値の曲線に対して信頼限界を計算します。上限と下限の間の範囲には,真の応答値から構成される曲線が100(1 -α)%の信頼度で含まれます。

  • - - - - - -预测は,Xnew内の各観測値における応答値に対して信頼限界を計算します。特定の予測子の値における応答値の信頼区間には,真の応答値が100(1 -α)%の信頼度で含まれます。

応答値の曲線全体を範囲内に含める方が,単一の予測子の値における応答値を範囲内に含める場合より条件が厳しいので,同時区間は個別の区間より広くなります。

例:“同步”,真的

出力引数

すべて折りたたむ

Xnewで予測した応答の値。数値ベクトルとして返されます。

応答の信頼区間。各行が1つの区間に対応する2列の行列として返されます。信頼区間の意味は,名前と値のペアの引数“α”“预测”および“同时”の設定によって異なります。

代替機能

  • 函数宏指令は,预测と同じ予測を返します。関数函数宏指令は,複数の入力引数を受け取ることができ,各予測子変数には1つの入力が対応します。テーブルまたはデータセット配列から作成したモデルの場合、この関数をより簡単に使用できます。関数函数宏指令は,予測に対する信頼区間は返さないことに注意してください。

  • 随机は,ノイズを追加した予測を返します。

  • 予測した回帰面を通るスライスをそれぞれが表す一連のプロットが含まれている图を作成するには,plotSliceを使用します。各プロットは,他の予測子変数の値を固定した状態で単一の予測子変数の関数としてあてはめた応答値を示します。

拡張機能

R2012aで導入