モデルが目に見えないデータをどれだけうまく予測できるかを判断したい場合は、交差検証を使用できます。Matlab では、glmfit を使用してロジスティック回帰モデルを適合させ、glmval を使用してそれをテストできます。
これを行う方法を示す Matlab コードのサンプルを次に示します。ここで、X は特徴行列、Labels は各ケースのクラス ラベル、num_shuffles は交差検証の繰り返し回数、num_folds は折り畳み回数です。
for j = 1:num_shuffles
indices = crossvalind('Kfold',Labels,num_folds);
for i = 1:num_folds
test = (indices == i); train = ~test;
[b,dev,stats] = glmfit(X(train,:),Labels(train),'binomial','logit'); % Logistic regression
Fit(j,i) = glmval(b,X(test,:),'logit')';
end
end
フィットは、各テスト フォールドのフィットされたロジスティック回帰推定値です。これをしきい値処理すると、各テスト ケースの予測クラスの推定値が得られます。次に、予測されたクラス ラベルを実際のクラス ラベルと比較することによって、パフォーマンス測定値が計算されます。すべてのフォールドと繰り返しにわたってパフォーマンス測定値を平均すると、目に見えないデータに対するモデル パフォーマンスの推定値が得られます。
- 最初は @Stats.SE で BGreene によって回答されました。