主要内容

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

RegressionLinearクラス

高次元データ用の線形回帰モデル

説明

RegressionLinearは,回帰用の学習済み線形モデルオブジェクトです。線形モデルは,サポートベクターマシン回帰(SVM)または線形回帰モデルです。fitrlinearは,高次元データセットの計算時間を短縮する手法(確率的勾配降下法など)を使用して目的関数を最小化することによりRegressionLinearモデルをあてはめます。回帰損失と正則化項を加算することにより目的関数が構成されます。

他の回帰モデルとは異なり,また,メモリ消費を節約するため,RegressionLinearモデルオブジェクトには学習データが格納されません。ただし,推定した線形モデル係数,推定した係数,正則化強度などは格納されます。

学習済みのRegressionLinearモデルを使用して,新しいデータに対する応答を予測できます。詳細については,预测を参照してください。

構築

RegressionLinearオブジェクトの作成にはfitrlinearを使用します。

プロパティ

すべて展開する

線形回帰のプロパティ

イプシロン不感応区間の幅の半分。非負のスカラーを指定します。

学习者“支持向量机”ではない場合,εは空の文字列([])です。

データ型:|

正則化項の強度。非負のスカラーまたは非負値のベクトルを指定します。

データ型:|

線形回帰モデルのタイプ。“leastsquares”または“支持向量机”を指定します。

次の表では, f x x β + b です。

  • βはp個の係数のベクトルです。

  • xはp個の予測子変数による観測値です。

  • bはスカラーバイアスです。

アルゴリズム 損失関数 FittedLossの値
“leastsquares” 通常の最小二乗による線形回帰 平均二乗誤差(MSE): y f x 1 2 y f x 2 mse的
“支持向量机” サポートベクターマシン回帰 イプシロン不感応: y f x 马克斯 0 | y f x | ε “epsiloninsensitive”

線形係数の推定値。長さが予測子数に等しい数値ベクトルを指定します。

データ型:

推定バイアス項またはモデルの切片。数値スカラーを指定します。

データ型:

線形モデルのあてはめに使用する損失関数。“epsiloninsensitive”またはmse的を指定します。

アルゴリズム 損失関数 学习者の値
“epsiloninsensitive” サポートベクターマシン回帰 イプシロン不感応: y f x 马克斯 0 | y f x | ε “支持向量机”
mse的 通常の最小二乗による線形回帰 平均二乗誤差(MSE): y f x 1 2 y f x 2 “leastsquares”

複雑度ペナルティのタイプ。“套索(L1)”または“岭(L2)”を指定します。

最小化のための目的関数は,平均損失関数(FittedLossを参照)と次の表の正則化値を加算することにより作成されます。

説明
“套索(L1)” 套索(l1)ペナルティ: λ j 1 p | β j |
“岭(L2)” リッジ(l2)ペナルティ: λ 2 j 1 p β j 2

λは,正則化項の強度を規定します(λを参照)。

バイアス項(β0)は正則化ペナルティから除外されます。

他の回帰のプロパティ

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。予測子データの行に観測値が含まれていると仮定すると、CategoricalPredictorsには,カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合,このプロパティは空([])になります。

データ型:|

RegressionLinearモデルに学習をさせるために使用したパラメーター。構造体を指定します。

ModelParametersのフィールドにはドット表記でアクセスします。たとえば,線形係数およびバイアス項の相対許容誤差にアクセスするにはMdl.ModelParameters.BetaToleranceを使用します。

データ型:结构体

予測子データに現れる順序で並んでいる予測子名。文字ベクトルの细胞配列として指定します。PredictorNamesの長さは,予測子変数として使用される学習データXまたは资源描述に含まれている変数の数と等しくなります。

データ型:细胞

展開された予測子名。文字ベクトルの cell 配列を指定します。

モデルがカテゴリカル変数用のエンコーディングを使用している場合,ExpandedPredictorNamesには展開された変数を表す名前が格納されます。それ以外の場合,ExpandedPredictorNamesPredictorNamesと同じです。

データ型:细胞

応答変数名。文字ベクトルを指定します。

データ型:字符

応答変換関数。“没有”または関数ハンドルを指定します。ResponseTransformは,生の応答値を変換する方法を表します。

MATLAB®関数やユーザー定義関数の場合は,関数ハンドルを入力します。たとえば,Mdl。ResponseTransform = @functionを入力できます。ここで函数は,元の応答の数値ベクトルを受け入れ,変換した応答が格納されている同じサイズの数値ベクトルを返します。

データ型:字符|function_handle

オブジェクト関数

incrementalLearner 線形回帰モデルのインクリメンタル学習器への変換
石灰 本地可解释模型不可知解释(LIME)
损失 線形回帰モデルの回帰損失
partialDependence 部分従属の計算
plotPartialDependence 部分依存プロット(PDP)および個別条件付き期待値(ICE)プロットの作成
预测 線形回帰モデルの応答予測
selectModels 近似済み正則化線形回帰モデルの選択
沙普利 シャープレイ値
更新 コード生成用にモデルパラメーターを更新

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

支持向量机,双対SGDおよびリッジ正則化を使用して線形回帰モデルに学習をさせます。

10000次のモデルにより個の観測値をシミュレートします。

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 は,10%の要素が非ゼロ標準正規である10000行1000列のスパース行列です。

  • eは,平均が0,標準偏差が0.3のランダムな正規誤差です。

rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

線形回帰モデルに学習をさせます。既定の設定では,fitrlinearはリッジペナルティがあるサポートベクターマシンを使用し,SVM用の双対SGDを使用して最適化を行います。近似の要約を抽出して,最適化アルゴリズムによるモデルがどの程度データにあてはまるかを判断します。

[Mdl, FitInfo] = fitrlinear (X, Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0056 Lambda: 1.0000e-04 Learner: 'svm'属性,方法
FitInfo =结构体字段:Lambda: 1.0000e-04 Objective: 0.2725 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 100000 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.4907 BetaTolerance: 1.0000e-04 DeltaGradient: 1.5816 DeltaGradientTolerance: 0.1000 TerminationCode: 0 TerminationStatus:{'迭代限制超过。Alpha: [10000x1 double] History: [] FitTime: 0.0517 Solver: {'dual'}

MdlRegressionLinearモデルです。Mdlと学習データまたは新しいデータを损失に渡して,標本内二乗平均誤差を調べることができます。または,Mdlと新しい予測子データを预测に渡して,新しい観測値の応答を予測することができます。

FitInfoは,重要な情報として終了ステータス(TerminationStatus)とソルバーによるモデルのデータへのあてはめにかかった時間(FitTime)が含まれている構造体配列です。FitInfoを使用して,最適化終了時の結果が満足できるものであるかどうかを判断することをお勧めします。この場合,fitrlinearは最大反復回数に達しました。モデルに再学習をさせることもできますが,学習時間は短いので,データを通す回数を増やしてください。または,LBFGSなど別のソルバーを試してください。

10000次のモデルにより個の観測値をシミュレートします。

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 は,10%の要素が非ゼロ標準正規である10000行1000列のスパース行列です。

  • eは,平均が0,標準偏差が0.3のランダムな正規誤差です。

rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

5%のデータをホールドアウトします。

rng (1);%的再现性本量利= cvpartition (n,“坚持”, 0.05)
cvp = hold out cross validation partition nummobations: 10000 NumTestSets: 1 TrainSize: 9500 TestSize: 500

本量利は,n個のデータを学習セットと検定セットに無作為に分割する方法を定義するCVPartitionオブジェクトです。

学習セットを使用して線形回帰モデルに学習をさせます。学習時間を短縮するため,観測値が列単位になるように予測子データの行列を配置します。

idxTrain =培训(cvp);%提取训练集指标X = X ';Mdl = fitrlinear (X (:, idxTrain), Y (idxTrain),“ObservationsIn”“列”);

ホールドアウト標本の観測値と二乗平均誤差(MSE)を予測します。

idxTest =测试(cvp);%提取测试集指标yHat =预测(Mdl X (:, idxTest),“ObservationsIn”“列”);L =损失(Mdl X (:, idxTest), Y (idxTest),“ObservationsIn”“列”
L = 0.1851

ホールドアウト標本のMSEは0.1852です。

拡張機能

R2016aで導入