Main Content

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

resubLoss

    説明

    L = resubLoss(Mdl) は、Mdl.X に格納されている学習データと Mdl.Y に格納されている対応する応答を使用して、学習済み回帰モデル Mdl の再代入による回帰損失 (標本内回帰損失) L を返します。

    L の解釈は損失関数 ('LossFun') と加重スキーム (Mdl.W) によって異なります。一般に、優れたモデルの方が回帰損失値が小さくなります。'LossFun' の既定値は 'mse' (平均二乗誤差) です。

    L = resubLoss(Mdl,Name,Value) では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、'IncludeInteractions',false は、一般化加法モデル Mdl から交互作用項を除外するように指定します。

    すべて折りたたむ

    一般化加法モデル (GAM) に学習させてから、平均二乗誤差 (MSE) を使用して再代入損失を計算します。

    patients データセットを読み込みます。

    load patients

    予測子変数 (AgeDiastolicSmokerWeightGenderSelfAssessedHealthStatus) と応答変数 (Systolic) を格納する table を作成します。

    tbl = table(Age,Diastolic,Smoker,Weight,Gender,SelfAssessedHealthStatus,Systolic);

    tbl 内の予測子の線形項が格納されている一変量の GAM に学習させます。

    Mdl = fitrgam(tbl,"Systolic")
    Mdl = 
      RegressionGAM
               PredictorNames: {1x6 cell}
                 ResponseName: 'Systolic'
        CategoricalPredictors: [3 5 6]
            ResponseTransform: 'none'
                    Intercept: 122.7800
              NumObservations: 100
    
    
      Properties, Methods
    
    

    MdlRegressionGAM モデル オブジェクトです。

    平均二乗誤差 (MSE) を使用して再代入損失を計算します。

    L = resubLoss(Mdl)
    L = 4.1957
    

    予測子の線形項と交互作用項の両方が格納されている一般化加法モデル (GAM) に学習させ、学習データと検定データについて交互作用項を含める場合と含めない場合の回帰損失 (平均二乗誤差、MSE) を推定します。回帰損失を推定する際に交互作用項を含めるかどうかを指定します。

    carbig データセットを読み込みます。このデータセットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。

    load carbig

    予測子変数 (X) として AccelerationDisplacementHorsepower および Weight を、応答変数 (Y) として MPG を指定します。

    X = [Acceleration,Displacement,Horsepower,Weight];
    Y = MPG;

    データ セットを 2 つのセットに分割します。1 つは学習データを含め、もう 1 つは新しい未観測の検定データを含めます。新しい検定データ セットの 10 件の観測値を保持します。

    rng('default') % For reproducibility
    n = size(X,1);
    newInds = randsample(n,10);
    inds = ~ismember(1:n,newInds);
    XNew = X(newInds,:);
    YNew = Y(newInds);

    X 内の使用可能なすべての線形項と交互作用項が格納されている一般化加法モデルに学習させます。

    Mdl = fitrgam(X(inds,:),Y(inds),'Interactions','all');

    MdlRegressionGAM モデル オブジェクトです。

    Mdl に交互作用項を含める場合と含めない場合の両方の再代入 MSE (つまり標本内 MSE) を計算します。交互作用項を除外するには、'IncludeInteractions',false を指定します。

    resubl = resubLoss(Mdl)
    resubl = 0.0292
    
    resubl_nointeraction = resubLoss(Mdl,'IncludeInteractions',false)
    resubl_nointeraction = 4.7330
    

    検定データ セットについて、交互作用項を含める場合と含めない場合の両方の回帰 MSE を計算します。メモリ効率の高いモデル オブジェクトを計算に使用します。

    CMdl = compact(Mdl);

    CMdlCompactRegressionGAM モデル オブジェクトです。

    l = loss(CMdl,XNew,YNew)
    l = 12.8604
    
    l_nointeraction = loss(CMdl,XNew,YNew,'IncludeInteractions',false)
    l_nointeraction = 15.6741
    

    学習データ セットと検定データ セットのいずれについても、交互作用項を含めた方が誤差が小さくなります。

    入力引数

    すべて折りたたむ

    回帰機械学習モデル。完全な回帰モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。

    モデル回帰モデル オブジェクト
    一般化加法モデルRegressionGAM
    ニューラル ネットワーク モデルRegressionNeuralNetwork

    名前と値のペアの引数

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

    例: resubLoss(Mdl,'IncludeInteractions',false) は、一般化加法モデル Mdl から交互作用項を除外します。

    モデルの交互作用項を含むというフラグ。true または false として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、MdlRegressionGAM である場合だけです。

    Mdl に交互作用項が含まれる場合、既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。

    例: 'IncludeInteractions',false

    データ型: logical

    損失関数。'mse' または関数ハンドルとして指定します。

    • 'mse' — 重み付けされた平均二乗誤差。

    • 関数ハンドル — カスタム損失関数を指定するには、関数ハンドルを使用します。関数は次の形式でなければなりません。

      lossval = lossfun(Y,YFit,W)

      • 出力引数 lossval は浮動小数点スカラーです。

      • 関数名 (lossfun) を指定します。

      • Y は、観測応答の長さ n の数値ベクトルです。ここで、n は Tbl または X に含まれている観測値の個数です。

      • YFit は、対応する予測応答の長さ n の数値ベクトルです。

      • W は、観測値の重みの n 行 1 列の数値ベクトルです。

    例: 'LossFun',@lossfun

    データ型: char | string | function_handle

    詳細

    すべて折りたたむ

    重み付けされた平均二乗誤差

    重み付けされた平均二乗誤差は、回帰モデルの予測誤差を測定します。複数のモデルで同じタイプの損失を比較した場合、誤差が小さい方が予測モデルとして優れていることになります。

    重み付けされた平均二乗誤差は、次のように計算されます。

    mse=j=1nwj(f(xj)yj)2j=1nwj,

    ここで、

    • n は、データの行数です。

    • xj は、データの j 番目の行です。

    • yj は、xj に対する真の応答です。

    • f(xj) は、xj に対するモデル Mdl の応答予測です。

    • w は、観測値の重みのベクトルです。

    アルゴリズム

    resubLoss は、オブジェクト (Mdl) の対応する関数 loss に従って回帰損失を計算します。モデル固有の説明については、次の表に示す関数 loss のリファレンス ページを参照してください。

    モデル回帰モデル オブジェクト (Mdl)オブジェクト関数 loss
    一般化加法モデルRegressionGAMloss
    ニューラル ネットワーク モデルRegressionNeuralNetworkloss
    R2021a で導入