最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
交差検証を使用した損失の推定
は、指定された err
= crossval(criterion
,X
,y
,'Predfun',predfun
)criterion
、すなわち 'mse'
(平均二乗誤差) または 'msc'
(誤分類率) のいずれかに基づいて、関数 predfun
に対する 10 分割交差検証の誤差推定値を返します。X
と y
の行は観測値に、X
の列は予測子変数に対応します。
この場合、crossval
は次のように 10 分割交差検証を実行します。
予測子データ X
と応答変数 y
に含まれる観測値を、各グループの観測値の数がほぼ同じになるように 10 個のグループに分割します。
最後の 9 つの観測値グループを使用し、predfun
の指定に従ってモデルの学習を実行します。最初の観測値グループを検定データとして使用します。この検定の予測子データを学習済みのモデルに渡し、predfun
の指定に従って予測値を計算します。criterion
で指定された誤差を計算します。
最初の観測値グループと最後の 8 つの観測値グループを使用し、predfun
の指定に従ってモデルの学習を実行します。2 番目の観測値グループを検定データとして使用します。この検定データを学習済みのモデルに渡し、predfun
の指定に従って予測値を計算します。criterion
で指定された誤差を計算します。
すべての観測値グループが検定データとして 1 回のみ使用されるように、同様の方法で処理を行います。
スカラーの err
として平均誤差推定値を返します。
は、関数 values
= crossval(fun
,X
)fun
を X
内のデータに適用して 10 分割交差検証を実行します。X
の行は観測値に、X
の列は変数に対応します。
crossval
は、通常、次のように 10 分割交差検証を実行します。
X
に含まれるデータを、各グループの観測値の数がほぼ同じになるように 10 個のグループに分割します。
最後の 9 つのデータ グループを使用し、fun
の指定に従ってモデルの学習を実行します。最初のデータ グループを検定セットとして使用します。この検定セットを学習済みのモデルに渡し、fun
の指定に従って値 (損失など) を計算します。
最初のデータ グループと最後の 8 つのデータ グループを使用し、fun
の指定に従ってモデルの学習を実行します。2 番目のデータ グループを検定セットとして使用します。この検定セットを学習済みのモデルに渡し、fun
の指定に従って同じ値を計算します。
すべてのデータ グループが検定セットとして 1 回のみ使用されるように、同様の方法で処理を行います。
計算された 10 個の値をベクトル values
として返します。
___ = crossval(___,
では、前の構文におけるいずれかの入力引数の組み合わせと出力引数に加えて、1 つ以上の名前と値のペアの引数を使用して交差検証のオプションを指定します。たとえば、Name,Value
)'KFold',5
は 5 分割交差検証を実行するよう指定します。
分類アルゴリズムを使用して交差検証を行う場合は、階層化 (Stratify
を参照) を使用することをお勧めします。それ以外の場合、検定セットによってはクラスの観測値がすべて含まれないことがあります。
多くの分類関数や回帰関数では、交差検証を直接実行できます。
fitcsvm
、fitctree
、および fitrtree
などの近似関数を使用する場合、名前と値のペアの引数を使用して交差検証のオプションを指定できます。または、これらの近似関数を使用してモデルをまず作成した後、オブジェクト関数 crossval
を使用して、分割オブジェクトを作成することもできます。オブジェクト関数 kfoldLoss
と kfoldPredict
を使用して、分割オブジェクトの損失値と予測値を計算します。詳細については、ClassificationPartitionedModel
と RegressionPartitionedModel
を参照してください。
lasso
と lassoglm
を使用して LASSO または Elastic Net 正則化を実行するときに、交差検証オプションを指定することもできます。