このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
predict
クラス:RegressionLinear
线形回帰モデル応答予测
説明
入力引数
Mdl
—线形回帰モデル
RegressionLinear
モデル オブジェクト
线形回帰モデル。RegressionLinear
モデルオブジェクト指定します。RegressionLinear
モデル オブジェクトは、fitrlinear
を使用て作成でき。。
X
—応答のに使用する。。
非スパースの数値行列|スパースの数値行列|テーブル
応答のに使用する。。非スパースまたはスパースの数値行列またはテーブルとして指定します。
既定では、X
の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。
数値行列の場合
X
の列に含まれている変数の順序は、Mdl
に学習させた予測子変数の順序と同じでなければなりません。テーブル (たとえば
TBL
)を使用してMdl
に学習をさせる場合、TBL
に含まれている予測子変数が数値のみであれば、X
を数値にことができます。学习ににTBL
内の数値予測子をカテゴリカルとして扱うには、fitrlinear
の名前値のペア引数引数分类预期
を使用してカテゴリカル予測子を指定します。TBL
に种类なる予测子(分类データ型)がが,,,X
が数値行列である場合、predict
でエラースローされ。。
テーブルの场合
predict
细胞配列配列配列ではないではない配列配列配列列変数変数サポートしません。。。テーブル (たとえば
TBL
)を使用してMdl
に学習をさせた場合,X
内のすべての予測子変数は変数名およびデータ型が、Mdl
に学習させた (Mdl.PredictorNames
に格納されている) 変数と同じでなければなりません。ただし、X
の列の順序がTBL
の列の順序に対応する必要はありません。また、TBL
とX
に追加(応答応答や値重み)ををことができますががpredict
はこれらを無視します。数値行列を使用して
Mdl
に学習をさせる場合、Mdl.PredictorNames
内の予测とX
内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定するには、fitrlinear
の名前値のペア引数引数预测器
を使用し。X
内の子は数値ベクトルでなけれなりません。X
に追加(応答応答や値重み)ををことができますががpredict
はこれらを無視します。
メモ
観测値列対応ように予测子を配置して“观察”,“列”
を指定,适化実行时间大幅にされる可能性性がありますます。。。。。“观察”,“列”
を指定ことはでき。。
データ::双倍的
|single
|table
方面
—予测子データ観测値の次元
'rows'
(既定値) |'columns'
予测子データ観测値の。。'columns'
または'rows'
として指定し。
メモ
観测値列対応ように予测子を配置して“观察”,“列”
を指定,适化実行时间大幅にされる可能性性がありますます。。。。。“观察”,“列”
を指定ことはでき。。
出力引数
例
検定标本のの予测
10000个个の観测値をシミュレートし。。。。。
は、10% の要素が非ゼロ標準正規である 10000 行 1000 列のスパース行列です。
eは、平均が 0、標準偏差が 0.3 のランダムな正規誤差です。
rng(1)%可再现性n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
线形回帰モデルに学習をさせます。観測値の 30% をホールドアウト標本として予約します。
cvmdl = fitrlinear(x,y,'坚持',0.3); Mdl = CVMdl.Trained{1}
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0066 Lambda: 1.4286e-04 Learner: 'svm' Properties, Methods
CVMDL
はRegressionPartitionedLinear
モデルです。これには训练有素
プロパティが含まれています。これは 1 行 1 列の cell 配列で、学習セットにより学習させたRegressionLinear
モデルが格納されています。
学習データと検定データを分割の定義から抽出します。
trainIdx = training(CVMdl.Partition); testIdx = test(CVMdl.Partition);
学習標本および検定標本の応答を予測します。
yhattrain=预测(Mdl,X(trainIdx,:)); yHatTest = predict(Mdl,X(testIdx,:));
Mdl
内の化强度ははつなつなつな,yhattrain
とyHatTest
は数値ベクトルになります。
最適なモデルによる予測
LASSO ペナルティと最小二乗を使用する最適な線形回帰モデルから応答を予測します。
検定标本のの予测で说明れいるようにににに个个値をシミュレートし。。
rng(1)%可再现性n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
〜 の範囲で対数間隔で配置された 15 個の正則化強度を作成します。
Lambda = logspace(-5,-1,15);
モデルを交差検証します。実行速度を向上させるため、予測子データを転置し、観測値が列単位であることを指定します。SpaRSA を使用して目的関数を最適化します。
x = x';cvmdl = fitrlinear(x,y,“观察”,'columns','kfold',5,'Lambda',Lambda,...'Learner','leastsquares','Solver','sparsa','Regularization','lasso');numclmodels = numel(cvmdl.Trading)
numClmodels = 5
CVMDL
はRegressionPartitionedLinear
モデルです。fitrlinear
5分割分割検证実装するので,分割について学习ささせるせるせるののののRegressionLinear
モデルがCVMDL
に格納されます。
1 番目の学習済み線形回帰モデルを表示します。
Mdl1 = CVMdl.Trained{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double] Bias: [-0.0049 -0.0049 -0.0049 -0.0049 -0.0049 -0.0048 ... ] Lambda: [1.0000e-05 1.9307e-05 3.7276e-05 7.1969e-05 ... ] Learner: 'leastsquares' Properties, Methods
Mdl1
はRegressionLinear
モデル オブジェクトです。fitrlinear
は最初の 4 つの分割に対して学習を行うことによりMdl1
を构筑した。Lambda
は正则强度のシーケンス,,Mdl1
はそれぞれがLambda
の各正則化強度に対応する 11 個のモデルであると考えることができます。
交差検証された MSE を推定します。
mse = kfoldLoss(CVMdl);
Lambda
の値が大きくなると、予測子変数がスパースになります。これは回帰モデルの品質として優れています。データセット全体を使用し、モデルの交差検証を行ったときと同じオプションを指定して、各正則化強度について線形回帰モデルに学習をさせます。モデルごとに非ゼロの係数を特定します。
mdl = fitrlinear(x,y,“观察”,'columns','Lambda',Lambda,...'Learner','leastsquares','Solver','sparsa','Regularization','lasso');numnzcoeff = sum(mdl.beta〜 = 0);
同じ図各则化强度についてのの検证れたたたたととととゼロゼロ系数ののの频度をプロットしますますます。。。すべて
figure; [h,hL1,hL2] = plotyy(log10(Lambda),log10(mse),...log10(lambda),log10(numnzcoeff));hl1.marker ='o'; hL2.Marker ='o'; ylabel(h(1),'log_{10} MSE') ylabel(h(2),'log_ {10}非零频率频率') xlabel('log_{10} Lambda') holdoff
MSEのののの低さのバランスとれている正则化(Lambda(10)
など)のの选択し。。
idxfinal = 10;
MSEにに対応モデルを抽出ます。。。
mdlfinal = selectModels(mdl,idxfinal)
mdlfinal =回归线响应名称:'y'ponsponseTransform:'none''beta:[1000x1 double]偏差:-0.0050 lambda:0.0037 Learner:'leastsquares'属性,方法,方法
idxNZCoeff = find(MdlFinal.Beta~=0)
idxNZCoeff =2×1100 200
ESTCOEFF= Mdl.Beta(idxNZCoeff)
ESTCOEFF=2×11.0051 1.9965
MdlFinal
は1つの正則化強度があるRegressionLinear
モデルです。非ゼロ係数ESTCOEFF
は,をし系数に近くています。
10 個の新しい観測値をシミュレートし、最適なモデルを使用して対応する応答を予測します。
XNew = sprandn(d,10,nz); YHat = predict(MdlFinal,XNew,“观察”,'columns');
拡张机能
高
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C ++コード生成
MATLAB®编码器™を使用てC ++コードを生成し。。。
使用上注意および制限事项:
コーダーコンフィギュアラー使用して,
predict
と更新
C/C ++コードコードを生成ます,,,,Savelearnerforcoder
、loadLearnerForCoder
、およびcodegen
を使用してpredict
のコードのみを生成します。predict
と更新
に対するコード生成 -LEARNERNERNECODERCONFIGURER
を使用してコーダー コンフィギュアラーを作成してから、GenerateCode
を使用コード生成します。により生成さたたコードののモデルモデルモデルパラメーターパラメーターパラメーターは,コードのの再生成成成成をををpredict
のコード生成 -Savelearnerforcoder
を使用て学习済みを保存します。loadLearnerForCoder
を使用して保存済みモデルを読み込んで関数predict
を呼び出す,エントリポイント関数を定義します。次に,codegen
(MATLAB编码器)を使用てエントリ关数のコード生成します。
predict
用の単精度 C/C++ コードを生成するには、関数loadLearnerForCoder
を呼び出すときに名前と値の引数'DataType','single'
を指定します。次の表,
predict
の引数に関する注意です。この表に含まれていない引数は、完全にサポートされています。引数 注意と制限 Mdl
モデルオブジェクト使用の注意制限については,
RegressionLinear
オブジェクトのコード生成を参照しください。X
一般的なコード生成の場合、
X
は、単精度または倍精度の行列か、数値変数、カテゴリカル変数、またはその両方を含む table でなければなりません。コーダー コンフィギュアラー ワークフローでは、
X
は単精または精度行列でなけれなりません。X
の観測値の数は可変サイズにすることができますが、X
の変数の数は固定でなければなりません。X
を table として指定する場合、モデルは table を使用して学習させたものでなければならず、かつ予測のためのエントリポイント関数が次を行うようにしなければなりません。データを配列として受け入れる。
データ入力の引数から table を作成し、その table 内で変数名を指定する。
表を
predict
に渡す。
このテーブルのワークフローの例については、table のデータを分類するためのコードの生成を参照ください。生成におけるテーブル使用详细详细については,表のコード生成(MATLAB编码器)およびtableにおけるにおけるの制限事项事项(MATLAB编码器)を参照しください。
名前とのペアの引数 名前値ペア引数にれる名前コンパイル时定数でなければなりなり。。。
名前とのペアの引数
“观察”
の値コンパイルのでなけれなりんたとえば,,生成されたコードでで名前名前と値のの“观察”,“列”
を使用するには、{coder.Constant('ObservationsIn'),coder.Constant('columns')}
をcodegen
(MATLAB编码器)の-args
の値にます。
详细は,コード生成の绍介を参照しください。
バージョン履歴
MATLABコマンド
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
Select a Web Site
选择一个网站以获取可用的翻译内容,并查看本地事件和优惠。根据您的位置,我们建议您选择:.
You can also select a web site from the following list:
如何获得最佳网站性能
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éricaLatina(Español)
- Canada(英语)
- United States(英语)