Main Content

kfoldLoss

交差検証済みカーネル回帰モデルの回帰損失

説明

L = kfoldLoss(CVMdl) は、交差検証済みのカーネル回帰モデル CVMdl によって取得した回帰損失を返します。kfoldLoss は、すべての分割について、学習分割内の観測値に対して学習をさせたモデルを使用して、検証分割内の観測値の回帰損失を計算します。

L = kfoldLoss(CVMdl,Name,Value) は、1 つ以上の名前と値の引数で指定された追加オプションを使用して、平均二乗誤差 (MSE) を返します。たとえば、回帰損失関数を指定したり、損失の計算に使用する分割を指定できます。

すべて折りたたむ

標本データをシミュレートします。

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*2e-2 + sin(x)./x + 0.2*randn(n,1);

カーネル回帰モデルを交差検証します。

CVMdl = fitrkernel(x,y,'Kfold',5);

fitrkernel は 5 分割の交差検証を実施します。CVMdlRegressionPartitionedKernel モデルです。このモデルに含まれている Trained プロパティは、学習セットを使用して学習を行った 5 個の RegressionKernel モデルが格納されている 5 行 1 列の cell 配列です。

分割の学習に fitrkernel が使用しなかった観測値について、各分割のイプシロン不感応損失を計算します。

L = kfoldLoss(CVMdl,'LossFun','epsiloninsensitive','Mode','individual')
L = 5×1

    0.2812
    0.3223
    0.3073
    0.3117
    0.2576

入力引数

すべて折りたたむ

交差検証済みのカーネル回帰モデル。RegressionPartitionedKernel モデル オブジェクトを指定します。RegressionPartitionedKernel モデルは、fitrkernel を使用し、交差検証に関する名前と値のペアの引数 (CrossVal など) を指定することにより作成できます。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'LossFun','epsiloninsensitive','Mode','individual' は、各分割のイプシロン不感応損失を返すよう kfoldLoss に指定します。

応答の予測に使用する分割のインデックス。'Folds' と正の整数の数値ベクトルから構成されるコンマ区切りのペアとして指定します。Folds の要素は 1 から CVMdl.KFold の範囲でなければなりません。

例: 'Folds',[1 4 10]

データ型: single | double

損失関数。'LossFun' と組み込み損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。

  • 次の表は、使用可能な損失関数の一覧です。対応する文字ベクトルまたは string スカラーを使用して、いずれかを指定します。また、この表では f(x)=xβ+b. です。

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

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

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

    説明
    'epsiloninsensitive'イプシロン不感応損失: [y,f(x)]=max[0,|yf(x)|ε]
    'mse'MSE: [y,f(x)]=[yf(x)]2

    'epsiloninsensitive' は SVM 学習器のみに適しています。

  • 関数ハンドル表記を使用して独自の関数を指定します。

    nX 内の観測値の個数であると仮定します。使用する関数のシグネチャは次のようになっていなければなりません。

    lossvalue = lossfun(Y,Yhat,W)
    ここで、

    • 出力引数 lossvalue はスカラーです。

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

    • Y は観測された応答の n 次元ベクトルです。kfoldLoss には入力引数 YY を渡します。

    • Yhat は予測された応答の n 次元ベクトルです。これは predict の出力と同様です。

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

データ型: char | string | function_handle

損失の集約レベル。'Mode''average' または 'individual' から構成されるコンマ区切りのペアとして指定します。

説明
'average'分割全体で平均した損失を返す
'individual'各分割について損失を返す

例: 'Mode','individual'

R2023b 以降

予測子に欠損値がある観測値に使用する予測した応答値。"median""mean""omitted"、または数値スカラーとして指定します。

説明
"median"kfoldLoss は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の中央値を使用します。
"mean"kfoldLoss は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の平均値を使用します。
"omitted"kfoldLoss は、予測子に欠損値がある観測値を損失の計算から除外します。
数値スカラーkfoldLoss は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。

観測された応答値または観測値の重みが観測値にない場合、その観測値は kfoldLoss による損失の計算に使用されません。

例: "PredictionForMissingValue","omitted"

データ型: single | double | char | string

出力引数

すべて折りたたむ

交差検証回帰損失。数値スカラーまたはベクトルとして返されます。L の解釈は LossFun によって異なります。

  • Mode'average' である場合、L はスカラーです。

  • それ以外の場合、L は k 行 1 列のベクトルです。k は分割数です。L(j) は分割 j における平均回帰損失です。

kfoldLossL を推定するため、CVMdl を作成したデータを使用します。

バージョン履歴

R2018b で導入

すべて展開する