cross validation

2072 ワード

k-folder cross-validation:kサブセット、各サブセットはテストセットを1回行い、残りはトレーニングセットとする.クロス検証はk回繰り返し,各サブセットをテストセットとして選択し,k回の平均クロス検証認識正解率を結果とした.利点:すべてのサンプルがトレーニングセットとテストセットとして使用され、各サンプルが1回検証されます.10−folderは通常使用される.
K*2 folder cross-validationはk-folder cross-validationの変体であり、各folderに対して平均的に2つの集合s 0,s 1に分けられ、私たちはまず集合s 0でs 1でテストし、それからs 1でs 0テストを訓練します.利点は、テストとトレーニングセットが十分に大きく、各サンプルがトレーニングセットとテストセットとして使用されることです.一般的にk=10
least-one-out cross-validation(loocv)はdatasetにn個のサンプルがあると仮定し、LOOCVはn-CVであり、各サンプルが単独で1回のテストセットとして、残りのn-1個のサンプルがトレーニングセットとすることを意味する.利点:1)各ラウンドのほとんどのサンプルはmodelの訓練に用いられるため,母体サンプルの分布に最も近く,得られたgeneralization errorを推定することが信頼できる.2)実験過程においてランダムな要素が実験データに影響を与えず,実験過程が複製できることを確保した.しかしLOOCVの欠点は計算コストが高いことです
10-fold cross validation
アルゴリズムの正確性をテストするために使用します.よく使われるテスト方法です.データセットを十分に分割し,そのうち9部を順番に訓練データ,1部を試験データとして試験を行った.試験のたびに相応の正解率(または誤り率)が得られる.10回の結果の正解率(または誤り率)の平均値をアルゴリズム精度の推定として、アルゴリズム精度の推定として、通常、アルゴリズムの正確性の推定として、10回の10回の10回の10回の交差検証(例えば10回の10回の10回の交差検証)を複数回行い、その平均値を求める必要がある.
libsvmによるcross validation
libsvmはsvmを提供する.svm_cross_validation(svm_problem prob, svm_parameter param, int nr_folder, double[] target)
ここでtargetは、クロス検証ルールに基づいて入力サンプルごとに予測が実行されるため、検証分類結果の出力を保存するために使用されます.
            double[] target = new double[labels.length];

            

            svm.svm_cross_validation(problem, param, 10, target);

            double correctCounter = 0;

            for (int i = 0; i < target.length; i++) {

                if (target[i] == labels[i]) {

                    correctCounter++;

                }

            }