Main Content

kfoldfun

回帰での関数の交差検証

    説明

    vals = kfoldfun(CVMdl,fun) は、交差検証済みモデル CVMdl に格納されているデータに fun を適用することにより、関数 fun を交差検証します。関数 fun は、関数ハンドルとして渡す必要があります。

    すべて折りたたむ

    回帰木モデルに学習をさせてから、カスタム k 分割損失関数を使用してこれを交差検証します。

    imports-85 データ セットを読み込みます。データのサブセットを使用して回帰木に学習させます。

    load imports-85
    Mdl = fitrtree(X(:,[4 5]),X(:,16),...
        'PredictorNames',{'Length','Width'},...
        'ResponseName','Price');

    回帰木を交差検証し、平均二乗誤差を取得します。

    CVMdl = crossval(Mdl);
    L = kfoldLoss(CVMdl)
    L = 1.9167e+07
    

    計算に予測ではなく学習応答の単純平均を使用する場合の誤差を調べます。

    f = @(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)...
        mean((Ytest-mean(Ytrain)).^2)
    f = function_handle with value:
        @(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)mean((Ytest-mean(Ytrain)).^2)
    
    
    mean(kfoldfun(CVMdl,f))
    ans = 6.3586e+07
    

    入力引数

    すべて折りたたむ

    交差検証済みモデル。RegressionPartitionedModel オブジェクト、RegressionPartitionedEnsemble オブジェクト、RegressionPartitionedGAM オブジェクト、RegressionPartitionedGP オブジェクト、RegressionPartitionedNeuralNetwork オブジェクト、または RegressionPartitionedSVM オブジェクトとして指定します。

    交差検証関数。関数ハンドルを指定します。fun の構文は次のとおりです。

    testvals = fun(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)
    • CMP は、CVMdl.Trained プロパティの 1 つの要素に保存されたコンパクト モデルです。

    • Xtrain は、予測値の学習行列です。

    • Ytrain は、応答値の学習配列です。

    • Wtrain は観測に適用される学習の重みです。

    • Xtest および Ytest は、重み Wtest が関連付けられたテスト データです。

    • 戻り値 testvals は、すべての分割で同じサイズでなければなりません。

    データ型: function_handle

    出力引数

    すべて折りたたむ

    交差検証の結果。数値行列として返されます。vals には testvals 出力の配列が格納され、すべての分割で垂直に連結されます。たとえば、すべての分割からの testvals が、長さ N の数値ベクトルである場合、kfoldfun は、1 つの分割につき 1 行で KFoldN 列の数値行列を返します。

    データ型: double

    拡張機能

    バージョン履歴

    R2011a で導入

    すべて展開する