Cross validation Vs. Train Validate Test





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







2












$begingroup$


I have a doubt regarding the cross validation approach and train-validation-test approach.



I was told that I can split a dataset into 3 parts:




  1. Train: we train the model.

  2. Validation: we validate and adjust model parameters.

  3. Test: never seen before data. We get an unbiased final estimate.


So far, we have split into three subsets. Until here everything is okay. Attached is a picture:



enter image description here



Then I came across the K-fold cross validation approach and what I don’t understand is how I can relate the Test subset from the above approach. Meaning, in 5-fold cross validation we split the data into 5 and in each iteration the non-validation subset is used as the train subset and the validation is used as test set. But, in terms of the above mentioned example, where is the validation part in k-fold cross validation? We either have validation or test subset.



When I refer myself to train/validation/test, that “test” is the scoring:



Model development is generally a two-stage process. The first stage is training and validation, during which you apply algorithms to data for which you know the outcomes to uncover patterns between its features and the target variable. The second stage is scoring, in which you apply the trained model to a new dataset. Then, it returns outcomes in the form of probability scores for classification problems and estimated averages for regression problems. Finally, you deploy the trained model into a production application or use the insights it uncovers to improve business processes.



As an example, I found the Sci-Kit learn cross validation version as you can see in the following picture:



enter image description here



When doing the splitting, you can see that the algorithm that they give you, only takes care of the training part of the original dataset. So, in the end, we are not able to perform the Final evaluation process as you can see in the attached picture.



Thank you!



scikitpage










share|improve this question











$endgroup$





















    2












    $begingroup$


    I have a doubt regarding the cross validation approach and train-validation-test approach.



    I was told that I can split a dataset into 3 parts:




    1. Train: we train the model.

    2. Validation: we validate and adjust model parameters.

    3. Test: never seen before data. We get an unbiased final estimate.


    So far, we have split into three subsets. Until here everything is okay. Attached is a picture:



    enter image description here



    Then I came across the K-fold cross validation approach and what I don’t understand is how I can relate the Test subset from the above approach. Meaning, in 5-fold cross validation we split the data into 5 and in each iteration the non-validation subset is used as the train subset and the validation is used as test set. But, in terms of the above mentioned example, where is the validation part in k-fold cross validation? We either have validation or test subset.



    When I refer myself to train/validation/test, that “test” is the scoring:



    Model development is generally a two-stage process. The first stage is training and validation, during which you apply algorithms to data for which you know the outcomes to uncover patterns between its features and the target variable. The second stage is scoring, in which you apply the trained model to a new dataset. Then, it returns outcomes in the form of probability scores for classification problems and estimated averages for regression problems. Finally, you deploy the trained model into a production application or use the insights it uncovers to improve business processes.



    As an example, I found the Sci-Kit learn cross validation version as you can see in the following picture:



    enter image description here



    When doing the splitting, you can see that the algorithm that they give you, only takes care of the training part of the original dataset. So, in the end, we are not able to perform the Final evaluation process as you can see in the attached picture.



    Thank you!



    scikitpage










    share|improve this question











    $endgroup$

















      2












      2








      2





      $begingroup$


      I have a doubt regarding the cross validation approach and train-validation-test approach.



      I was told that I can split a dataset into 3 parts:




      1. Train: we train the model.

      2. Validation: we validate and adjust model parameters.

      3. Test: never seen before data. We get an unbiased final estimate.


      So far, we have split into three subsets. Until here everything is okay. Attached is a picture:



      enter image description here



      Then I came across the K-fold cross validation approach and what I don’t understand is how I can relate the Test subset from the above approach. Meaning, in 5-fold cross validation we split the data into 5 and in each iteration the non-validation subset is used as the train subset and the validation is used as test set. But, in terms of the above mentioned example, where is the validation part in k-fold cross validation? We either have validation or test subset.



      When I refer myself to train/validation/test, that “test” is the scoring:



      Model development is generally a two-stage process. The first stage is training and validation, during which you apply algorithms to data for which you know the outcomes to uncover patterns between its features and the target variable. The second stage is scoring, in which you apply the trained model to a new dataset. Then, it returns outcomes in the form of probability scores for classification problems and estimated averages for regression problems. Finally, you deploy the trained model into a production application or use the insights it uncovers to improve business processes.



      As an example, I found the Sci-Kit learn cross validation version as you can see in the following picture:



      enter image description here



      When doing the splitting, you can see that the algorithm that they give you, only takes care of the training part of the original dataset. So, in the end, we are not able to perform the Final evaluation process as you can see in the attached picture.



      Thank you!



      scikitpage










      share|improve this question











      $endgroup$




      I have a doubt regarding the cross validation approach and train-validation-test approach.



      I was told that I can split a dataset into 3 parts:




      1. Train: we train the model.

      2. Validation: we validate and adjust model parameters.

      3. Test: never seen before data. We get an unbiased final estimate.


      So far, we have split into three subsets. Until here everything is okay. Attached is a picture:



      enter image description here



      Then I came across the K-fold cross validation approach and what I don’t understand is how I can relate the Test subset from the above approach. Meaning, in 5-fold cross validation we split the data into 5 and in each iteration the non-validation subset is used as the train subset and the validation is used as test set. But, in terms of the above mentioned example, where is the validation part in k-fold cross validation? We either have validation or test subset.



      When I refer myself to train/validation/test, that “test” is the scoring:



      Model development is generally a two-stage process. The first stage is training and validation, during which you apply algorithms to data for which you know the outcomes to uncover patterns between its features and the target variable. The second stage is scoring, in which you apply the trained model to a new dataset. Then, it returns outcomes in the form of probability scores for classification problems and estimated averages for regression problems. Finally, you deploy the trained model into a production application or use the insights it uncovers to improve business processes.



      As an example, I found the Sci-Kit learn cross validation version as you can see in the following picture:



      enter image description here



      When doing the splitting, you can see that the algorithm that they give you, only takes care of the training part of the original dataset. So, in the end, we are not able to perform the Final evaluation process as you can see in the attached picture.



      Thank you!



      scikitpage







      machine-learning cross-validation






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited May 26 at 10:06







      NaveganTeX

















      asked May 26 at 6:15









      NaveganTeXNaveganTeX

      1235 bronze badges




      1235 bronze badges

























          3 Answers
          3






          active

          oldest

          votes


















          2














          $begingroup$

          If k-fold cross-validation is used to optimize the model paremeters, the training set is split into k parts. Training happens k times, each time leaving out a different part of the training set. Typically, the error of these k-models is averaged. This is done for each of the model parameters to be tested, and the model with the lowest error is chosen. The test set has not been used so far.



          Only at the very end the test set is used to test the performance of the (optimized) model.



          # example: k-fold cross validation for hyperparameter optimization (k=3)

          original data split into training and test set:

          |---------------- train ---------------------| |--- test ---|

          cross-validation: test set is not used, error is calculated from
          validation set (k-times) and averaged:

          |---- train ------------------|- validation -| |--- test ---|
          |---- train ---|- validation -|---- train ---| |--- test ---|
          |- validation -|----------- train -----------| |--- test ---|

          final measure of model performance: model is trained on all training data
          and the error is calculated from test set:

          |---------------- train ---------------------|--- test ---|


          In some cases, k-fold cross-validation is used on the entire data set if no parameter optimization is needed (this is rare, but it happens). In this case there would not be a validation set and the k parts are used as a test set one by one. The error of each of these k tests is typically averaged.



          # example: k-fold cross validation

          |----- test -----|------------ train --------------|
          |----- train ----|----- test -----|----- train ----|
          |------------ train --------------|----- test -----|





          share|improve this answer











          $endgroup$















          • $begingroup$
            Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
            $endgroup$
            – NaveganTeX
            May 26 at 10:19






          • 1




            $begingroup$
            In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
            $endgroup$
            – louic
            May 26 at 17:56












          • $begingroup$
            It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
            $endgroup$
            – NaveganTeX
            May 26 at 21:54



















          1














          $begingroup$

          @louic's answer is correct: You split your data in two parts: training and test, and then you use k-fold cross-validation on the training dataset to tune the parameters. This is useful if you have little training data, because you don't have to exclude the validation data from the training dataset.



          But I find this comment confusing: "In some cases, k-fold cross-validation is used on the entire dataset ... if no parameter optimization is needed". It's correct that if you don't need any optimization of the model after running it for the first time, the performance on the validation data from your k-fold cross-validation runs gives you an unbiased estimate of the model performance. But this is a strange case indeed. It's much more comment to use k-fold cross validation on the entire dataset, and tune your algorithm. This means you lose the unbiased estimate of the model performance, but this is not always needed.






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
            $endgroup$
            – louic
            May 26 at 11:04










          • $begingroup$
            We could use Nested Cross Validation as an alternative to cross validation + test set
            $endgroup$
            – NaveganTeX
            May 26 at 11:17






          • 2




            $begingroup$
            Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
            $endgroup$
            – Paul
            May 26 at 11:23



















          0














          $begingroup$

          Excellent question!




          I find this train/test/validation confusing (I've been doing ML for 5 years).



          Who says your image is correct? Let's go to an ML authority (Sk-Learn)



          In general, we do k-Fold on train/test (see Sk-Learn image below).




          Technically, you could go one step further and do a Cross Validation on everything (train/test/validation). I've never done it though ...



          Good luck!



          enter image description here






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            We will figure it out, someday!!!
            $endgroup$
            – NaveganTeX
            May 26 at 9:19














          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "557"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });















          draft saved

          draft discarded
















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f52632%2fcross-validation-vs-train-validate-test%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          $begingroup$

          If k-fold cross-validation is used to optimize the model paremeters, the training set is split into k parts. Training happens k times, each time leaving out a different part of the training set. Typically, the error of these k-models is averaged. This is done for each of the model parameters to be tested, and the model with the lowest error is chosen. The test set has not been used so far.



          Only at the very end the test set is used to test the performance of the (optimized) model.



          # example: k-fold cross validation for hyperparameter optimization (k=3)

          original data split into training and test set:

          |---------------- train ---------------------| |--- test ---|

          cross-validation: test set is not used, error is calculated from
          validation set (k-times) and averaged:

          |---- train ------------------|- validation -| |--- test ---|
          |---- train ---|- validation -|---- train ---| |--- test ---|
          |- validation -|----------- train -----------| |--- test ---|

          final measure of model performance: model is trained on all training data
          and the error is calculated from test set:

          |---------------- train ---------------------|--- test ---|


          In some cases, k-fold cross-validation is used on the entire data set if no parameter optimization is needed (this is rare, but it happens). In this case there would not be a validation set and the k parts are used as a test set one by one. The error of each of these k tests is typically averaged.



          # example: k-fold cross validation

          |----- test -----|------------ train --------------|
          |----- train ----|----- test -----|----- train ----|
          |------------ train --------------|----- test -----|





          share|improve this answer











          $endgroup$















          • $begingroup$
            Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
            $endgroup$
            – NaveganTeX
            May 26 at 10:19






          • 1




            $begingroup$
            In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
            $endgroup$
            – louic
            May 26 at 17:56












          • $begingroup$
            It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
            $endgroup$
            – NaveganTeX
            May 26 at 21:54
















          2














          $begingroup$

          If k-fold cross-validation is used to optimize the model paremeters, the training set is split into k parts. Training happens k times, each time leaving out a different part of the training set. Typically, the error of these k-models is averaged. This is done for each of the model parameters to be tested, and the model with the lowest error is chosen. The test set has not been used so far.



          Only at the very end the test set is used to test the performance of the (optimized) model.



          # example: k-fold cross validation for hyperparameter optimization (k=3)

          original data split into training and test set:

          |---------------- train ---------------------| |--- test ---|

          cross-validation: test set is not used, error is calculated from
          validation set (k-times) and averaged:

          |---- train ------------------|- validation -| |--- test ---|
          |---- train ---|- validation -|---- train ---| |--- test ---|
          |- validation -|----------- train -----------| |--- test ---|

          final measure of model performance: model is trained on all training data
          and the error is calculated from test set:

          |---------------- train ---------------------|--- test ---|


          In some cases, k-fold cross-validation is used on the entire data set if no parameter optimization is needed (this is rare, but it happens). In this case there would not be a validation set and the k parts are used as a test set one by one. The error of each of these k tests is typically averaged.



          # example: k-fold cross validation

          |----- test -----|------------ train --------------|
          |----- train ----|----- test -----|----- train ----|
          |------------ train --------------|----- test -----|





          share|improve this answer











          $endgroup$















          • $begingroup$
            Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
            $endgroup$
            – NaveganTeX
            May 26 at 10:19






          • 1




            $begingroup$
            In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
            $endgroup$
            – louic
            May 26 at 17:56












          • $begingroup$
            It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
            $endgroup$
            – NaveganTeX
            May 26 at 21:54














          2














          2










          2







          $begingroup$

          If k-fold cross-validation is used to optimize the model paremeters, the training set is split into k parts. Training happens k times, each time leaving out a different part of the training set. Typically, the error of these k-models is averaged. This is done for each of the model parameters to be tested, and the model with the lowest error is chosen. The test set has not been used so far.



          Only at the very end the test set is used to test the performance of the (optimized) model.



          # example: k-fold cross validation for hyperparameter optimization (k=3)

          original data split into training and test set:

          |---------------- train ---------------------| |--- test ---|

          cross-validation: test set is not used, error is calculated from
          validation set (k-times) and averaged:

          |---- train ------------------|- validation -| |--- test ---|
          |---- train ---|- validation -|---- train ---| |--- test ---|
          |- validation -|----------- train -----------| |--- test ---|

          final measure of model performance: model is trained on all training data
          and the error is calculated from test set:

          |---------------- train ---------------------|--- test ---|


          In some cases, k-fold cross-validation is used on the entire data set if no parameter optimization is needed (this is rare, but it happens). In this case there would not be a validation set and the k parts are used as a test set one by one. The error of each of these k tests is typically averaged.



          # example: k-fold cross validation

          |----- test -----|------------ train --------------|
          |----- train ----|----- test -----|----- train ----|
          |------------ train --------------|----- test -----|





          share|improve this answer











          $endgroup$



          If k-fold cross-validation is used to optimize the model paremeters, the training set is split into k parts. Training happens k times, each time leaving out a different part of the training set. Typically, the error of these k-models is averaged. This is done for each of the model parameters to be tested, and the model with the lowest error is chosen. The test set has not been used so far.



          Only at the very end the test set is used to test the performance of the (optimized) model.



          # example: k-fold cross validation for hyperparameter optimization (k=3)

          original data split into training and test set:

          |---------------- train ---------------------| |--- test ---|

          cross-validation: test set is not used, error is calculated from
          validation set (k-times) and averaged:

          |---- train ------------------|- validation -| |--- test ---|
          |---- train ---|- validation -|---- train ---| |--- test ---|
          |- validation -|----------- train -----------| |--- test ---|

          final measure of model performance: model is trained on all training data
          and the error is calculated from test set:

          |---------------- train ---------------------|--- test ---|


          In some cases, k-fold cross-validation is used on the entire data set if no parameter optimization is needed (this is rare, but it happens). In this case there would not be a validation set and the k parts are used as a test set one by one. The error of each of these k tests is typically averaged.



          # example: k-fold cross validation

          |----- test -----|------------ train --------------|
          |----- train ----|----- test -----|----- train ----|
          |------------ train --------------|----- test -----|






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited May 26 at 9:58

























          answered May 26 at 9:50









          louiclouic

          2531 silver badge7 bronze badges




          2531 silver badge7 bronze badges















          • $begingroup$
            Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
            $endgroup$
            – NaveganTeX
            May 26 at 10:19






          • 1




            $begingroup$
            In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
            $endgroup$
            – louic
            May 26 at 17:56












          • $begingroup$
            It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
            $endgroup$
            – NaveganTeX
            May 26 at 21:54


















          • $begingroup$
            Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
            $endgroup$
            – NaveganTeX
            May 26 at 10:19






          • 1




            $begingroup$
            In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
            $endgroup$
            – louic
            May 26 at 17:56












          • $begingroup$
            It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
            $endgroup$
            – NaveganTeX
            May 26 at 21:54
















          $begingroup$
          Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
          $endgroup$
          – NaveganTeX
          May 26 at 10:19




          $begingroup$
          Thank you very much for the example, Louic! This is what I was able to catch from your answer. So, initially you split the dataset into train and test. Then you put away the TEST set. Then you run CV on the training data and calculate the error based on the validation folds. That’s awesome..., here we adjust the model etc. But, when it comes to the final measure of model performance, how do you implement that? All the libraries I have been working with only provide the cross validation part but they don’t take into account the TEST split.
          $endgroup$
          – NaveganTeX
          May 26 at 10:19




          1




          1




          $begingroup$
          In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
          $endgroup$
          – louic
          May 26 at 17:56






          $begingroup$
          In scikit-learn you can use train_test_split to split into a training and test set. After that a GridSearchCV on the training set takes care of parameter/model optimisation. Finally, you can calculate an error using the predictions on the test set (eg. using roc_auc_score, f1_score, or another appropriate error measure.Does that answer your question?
          $endgroup$
          – louic
          May 26 at 17:56














          $begingroup$
          It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
          $endgroup$
          – NaveganTeX
          May 26 at 21:54




          $begingroup$
          It does indeed! I was even more confused because I’m working with recommender systems and it’s a little bit different but now I have a more clear idea. Thank you very much, Louic!
          $endgroup$
          – NaveganTeX
          May 26 at 21:54













          1














          $begingroup$

          @louic's answer is correct: You split your data in two parts: training and test, and then you use k-fold cross-validation on the training dataset to tune the parameters. This is useful if you have little training data, because you don't have to exclude the validation data from the training dataset.



          But I find this comment confusing: "In some cases, k-fold cross-validation is used on the entire dataset ... if no parameter optimization is needed". It's correct that if you don't need any optimization of the model after running it for the first time, the performance on the validation data from your k-fold cross-validation runs gives you an unbiased estimate of the model performance. But this is a strange case indeed. It's much more comment to use k-fold cross validation on the entire dataset, and tune your algorithm. This means you lose the unbiased estimate of the model performance, but this is not always needed.






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
            $endgroup$
            – louic
            May 26 at 11:04










          • $begingroup$
            We could use Nested Cross Validation as an alternative to cross validation + test set
            $endgroup$
            – NaveganTeX
            May 26 at 11:17






          • 2




            $begingroup$
            Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
            $endgroup$
            – Paul
            May 26 at 11:23
















          1














          $begingroup$

          @louic's answer is correct: You split your data in two parts: training and test, and then you use k-fold cross-validation on the training dataset to tune the parameters. This is useful if you have little training data, because you don't have to exclude the validation data from the training dataset.



          But I find this comment confusing: "In some cases, k-fold cross-validation is used on the entire dataset ... if no parameter optimization is needed". It's correct that if you don't need any optimization of the model after running it for the first time, the performance on the validation data from your k-fold cross-validation runs gives you an unbiased estimate of the model performance. But this is a strange case indeed. It's much more comment to use k-fold cross validation on the entire dataset, and tune your algorithm. This means you lose the unbiased estimate of the model performance, but this is not always needed.






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
            $endgroup$
            – louic
            May 26 at 11:04










          • $begingroup$
            We could use Nested Cross Validation as an alternative to cross validation + test set
            $endgroup$
            – NaveganTeX
            May 26 at 11:17






          • 2




            $begingroup$
            Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
            $endgroup$
            – Paul
            May 26 at 11:23














          1














          1










          1







          $begingroup$

          @louic's answer is correct: You split your data in two parts: training and test, and then you use k-fold cross-validation on the training dataset to tune the parameters. This is useful if you have little training data, because you don't have to exclude the validation data from the training dataset.



          But I find this comment confusing: "In some cases, k-fold cross-validation is used on the entire dataset ... if no parameter optimization is needed". It's correct that if you don't need any optimization of the model after running it for the first time, the performance on the validation data from your k-fold cross-validation runs gives you an unbiased estimate of the model performance. But this is a strange case indeed. It's much more comment to use k-fold cross validation on the entire dataset, and tune your algorithm. This means you lose the unbiased estimate of the model performance, but this is not always needed.






          share|improve this answer









          $endgroup$



          @louic's answer is correct: You split your data in two parts: training and test, and then you use k-fold cross-validation on the training dataset to tune the parameters. This is useful if you have little training data, because you don't have to exclude the validation data from the training dataset.



          But I find this comment confusing: "In some cases, k-fold cross-validation is used on the entire dataset ... if no parameter optimization is needed". It's correct that if you don't need any optimization of the model after running it for the first time, the performance on the validation data from your k-fold cross-validation runs gives you an unbiased estimate of the model performance. But this is a strange case indeed. It's much more comment to use k-fold cross validation on the entire dataset, and tune your algorithm. This means you lose the unbiased estimate of the model performance, but this is not always needed.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered May 26 at 10:20









          PaulPaul

          6133 silver badges10 bronze badges




          6133 silver badges10 bronze badges











          • 1




            $begingroup$
            Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
            $endgroup$
            – louic
            May 26 at 11:04










          • $begingroup$
            We could use Nested Cross Validation as an alternative to cross validation + test set
            $endgroup$
            – NaveganTeX
            May 26 at 11:17






          • 2




            $begingroup$
            Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
            $endgroup$
            – Paul
            May 26 at 11:23














          • 1




            $begingroup$
            Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
            $endgroup$
            – louic
            May 26 at 11:04










          • $begingroup$
            We could use Nested Cross Validation as an alternative to cross validation + test set
            $endgroup$
            – NaveganTeX
            May 26 at 11:17






          • 2




            $begingroup$
            Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
            $endgroup$
            – Paul
            May 26 at 11:23








          1




          1




          $begingroup$
          Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
          $endgroup$
          – louic
          May 26 at 11:04




          $begingroup$
          Agreed, thanks. I mentioned that second example because I wanted to make it clear that cross-validation is a method (as opposed to an application of a method). To me it seemed that OP had trouble distinguishing the method and its application.
          $endgroup$
          – louic
          May 26 at 11:04












          $begingroup$
          We could use Nested Cross Validation as an alternative to cross validation + test set
          $endgroup$
          – NaveganTeX
          May 26 at 11:17




          $begingroup$
          We could use Nested Cross Validation as an alternative to cross validation + test set
          $endgroup$
          – NaveganTeX
          May 26 at 11:17




          2




          2




          $begingroup$
          Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
          $endgroup$
          – Paul
          May 26 at 11:23




          $begingroup$
          Remember that the point of k-fold cross-validation is to be able to use a good amount of test or validation data, without reducing your training dataset too much. If you have sufficient data to have a good size training data set, plus reasonable amounts of test and validation data, then I would suggest not to bother with k-fold cross validation, let alone nested solutions.
          $endgroup$
          – Paul
          May 26 at 11:23











          0














          $begingroup$

          Excellent question!




          I find this train/test/validation confusing (I've been doing ML for 5 years).



          Who says your image is correct? Let's go to an ML authority (Sk-Learn)



          In general, we do k-Fold on train/test (see Sk-Learn image below).




          Technically, you could go one step further and do a Cross Validation on everything (train/test/validation). I've never done it though ...



          Good luck!



          enter image description here






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            We will figure it out, someday!!!
            $endgroup$
            – NaveganTeX
            May 26 at 9:19
















          0














          $begingroup$

          Excellent question!




          I find this train/test/validation confusing (I've been doing ML for 5 years).



          Who says your image is correct? Let's go to an ML authority (Sk-Learn)



          In general, we do k-Fold on train/test (see Sk-Learn image below).




          Technically, you could go one step further and do a Cross Validation on everything (train/test/validation). I've never done it though ...



          Good luck!



          enter image description here






          share|improve this answer









          $endgroup$











          • 1




            $begingroup$
            We will figure it out, someday!!!
            $endgroup$
            – NaveganTeX
            May 26 at 9:19














          0














          0










          0







          $begingroup$

          Excellent question!




          I find this train/test/validation confusing (I've been doing ML for 5 years).



          Who says your image is correct? Let's go to an ML authority (Sk-Learn)



          In general, we do k-Fold on train/test (see Sk-Learn image below).




          Technically, you could go one step further and do a Cross Validation on everything (train/test/validation). I've never done it though ...



          Good luck!



          enter image description here






          share|improve this answer









          $endgroup$



          Excellent question!




          I find this train/test/validation confusing (I've been doing ML for 5 years).



          Who says your image is correct? Let's go to an ML authority (Sk-Learn)



          In general, we do k-Fold on train/test (see Sk-Learn image below).




          Technically, you could go one step further and do a Cross Validation on everything (train/test/validation). I've never done it though ...



          Good luck!



          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered May 26 at 9:09









          FrancoSwissFrancoSwiss

          4392 silver badges7 bronze badges




          4392 silver badges7 bronze badges











          • 1




            $begingroup$
            We will figure it out, someday!!!
            $endgroup$
            – NaveganTeX
            May 26 at 9:19














          • 1




            $begingroup$
            We will figure it out, someday!!!
            $endgroup$
            – NaveganTeX
            May 26 at 9:19








          1




          1




          $begingroup$
          We will figure it out, someday!!!
          $endgroup$
          – NaveganTeX
          May 26 at 9:19




          $begingroup$
          We will figure it out, someday!!!
          $endgroup$
          – NaveganTeX
          May 26 at 9:19



















          draft saved

          draft discarded



















































          Thanks for contributing an answer to Data Science Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f52632%2fcross-validation-vs-train-validate-test%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Færeyskur hestur Heimild | Tengill | Tilvísanir | LeiðsagnarvalRossið - síða um færeyska hrossið á færeyskuGott ár hjá færeyska hestinum

          He _____ here since 1970 . Answer needed [closed]What does “since he was so high” mean?Meaning of “catch birds for”?How do I ensure “since” takes the meaning I want?“Who cares here” meaningWhat does “right round toward” mean?the time tense (had now been detected)What does the phrase “ring around the roses” mean here?Correct usage of “visited upon”Meaning of “foiled rail sabotage bid”It was the third time I had gone to Rome or It is the third time I had been to Rome

          Slayer Innehåll Historia | Stil, komposition och lyrik | Bandets betydelse och framgångar | Sidoprojekt och samarbeten | Kontroverser | Medlemmar | Utmärkelser och nomineringar | Turnéer och festivaler | Diskografi | Referenser | Externa länkar | Navigeringsmenywww.slayer.net”Metal Massacre vol. 1””Metal Massacre vol. 3””Metal Massacre Volume III””Show No Mercy””Haunting the Chapel””Live Undead””Hell Awaits””Reign in Blood””Reign in Blood””Gold & Platinum – Reign in Blood””Golden Gods Awards Winners”originalet”Kerrang! Hall Of Fame””Slayer Looks Back On 37-Year Career In New Video Series: Part Two””South of Heaven””Gold & Platinum – South of Heaven””Seasons in the Abyss””Gold & Platinum - Seasons in the Abyss””Divine Intervention””Divine Intervention - Release group by Slayer””Gold & Platinum - Divine Intervention””Live Intrusion””Undisputed Attitude””Abolish Government/Superficial Love””Release “Slatanic Slaughter: A Tribute to Slayer” by Various Artists””Diabolus in Musica””Soundtrack to the Apocalypse””God Hates Us All””Systematic - Relationships””War at the Warfield””Gold & Platinum - War at the Warfield””Soundtrack to the Apocalypse””Gold & Platinum - Still Reigning””Metallica, Slayer, Iron Mauden Among Winners At Metal Hammer Awards””Eternal Pyre””Eternal Pyre - Slayer release group””Eternal Pyre””Metal Storm Awards 2006””Kerrang! Hall Of Fame””Slayer Wins 'Best Metal' Grammy Award””Slayer Guitarist Jeff Hanneman Dies””Bullet-For My Valentine booed at Metal Hammer Golden Gods Awards””Unholy Aliance””The End Of Slayer?””Slayer: We Could Thrash Out Two More Albums If We're Fast Enough...””'The Unholy Alliance: Chapter III' UK Dates Added”originalet”Megadeth And Slayer To Co-Headline 'Canadian Carnage' Trek”originalet”World Painted Blood””Release “World Painted Blood” by Slayer””Metallica Heading To Cinemas””Slayer, Megadeth To Join Forces For 'European Carnage' Tour - Dec. 18, 2010”originalet”Slayer's Hanneman Contracts Acute Infection; Band To Bring In Guest Guitarist””Cannibal Corpse's Pat O'Brien Will Step In As Slayer's Guest Guitarist”originalet”Slayer’s Jeff Hanneman Dead at 49””Dave Lombardo Says He Made Only $67,000 In 2011 While Touring With Slayer””Slayer: We Do Not Agree With Dave Lombardo's Substance Or Timeline Of Events””Slayer Welcomes Drummer Paul Bostaph Back To The Fold””Slayer Hope to Unveil Never-Before-Heard Jeff Hanneman Material on Next Album””Slayer Debut New Song 'Implode' During Surprise Golden Gods Appearance””Release group Repentless by Slayer””Repentless - Slayer - Credits””Slayer””Metal Storm Awards 2015””Slayer - to release comic book "Repentless #1"””Slayer To Release 'Repentless' 6.66" Vinyl Box Set””BREAKING NEWS: Slayer Announce Farewell Tour””Slayer Recruit Lamb of God, Anthrax, Behemoth + Testament for Final Tour””Slayer lägger ner efter 37 år””Slayer Announces Second North American Leg Of 'Final' Tour””Final World Tour””Slayer Announces Final European Tour With Lamb of God, Anthrax And Obituary””Slayer To Tour Europe With Lamb of God, Anthrax And Obituary””Slayer To Play 'Last French Show Ever' At Next Year's Hellfst””Slayer's Final World Tour Will Extend Into 2019””Death Angel's Rob Cavestany On Slayer's 'Farewell' Tour: 'Some Of Us Could See This Coming'””Testament Has No Plans To Retire Anytime Soon, Says Chuck Billy””Anthrax's Scott Ian On Slayer's 'Farewell' Tour Plans: 'I Was Surprised And I Wasn't Surprised'””Slayer””Slayer's Morbid Schlock””Review/Rock; For Slayer, the Mania Is the Message””Slayer - Biography””Slayer - Reign In Blood”originalet”Dave Lombardo””An exclusive oral history of Slayer”originalet”Exclusive! Interview With Slayer Guitarist Jeff Hanneman”originalet”Thinking Out Loud: Slayer's Kerry King on hair metal, Satan and being polite””Slayer Lyrics””Slayer - Biography””Most influential artists for extreme metal music””Slayer - Reign in Blood””Slayer guitarist Jeff Hanneman dies aged 49””Slatanic Slaughter: A Tribute to Slayer””Gateway to Hell: A Tribute to Slayer””Covered In Blood””Slayer: The Origins of Thrash in San Francisco, CA.””Why They Rule - #6 Slayer”originalet”Guitar World's 100 Greatest Heavy Metal Guitarists Of All Time”originalet”The fans have spoken: Slayer comes out on top in readers' polls”originalet”Tribute to Jeff Hanneman (1964-2013)””Lamb Of God Frontman: We Sound Like A Slayer Rip-Off””BEHEMOTH Frontman Pays Tribute To SLAYER's JEFF HANNEMAN””Slayer, Hatebreed Doing Double Duty On This Year's Ozzfest””System of a Down””Lacuna Coil’s Andrea Ferro Talks Influences, Skateboarding, Band Origins + More””Slayer - Reign in Blood””Into The Lungs of Hell””Slayer rules - en utställning om fans””Slayer and Their Fans Slashed Through a No-Holds-Barred Night at Gas Monkey””Home””Slayer””Gold & Platinum - The Big 4 Live from Sofia, Bulgaria””Exclusive! Interview With Slayer Guitarist Kerry King””2008-02-23: Wiltern, Los Angeles, CA, USA””Slayer's Kerry King To Perform With Megadeth Tonight! - Oct. 21, 2010”originalet”Dave Lombardo - Biography”Slayer Case DismissedArkiveradUltimate Classic Rock: Slayer guitarist Jeff Hanneman dead at 49.”Slayer: "We could never do any thing like Some Kind Of Monster..."””Cannibal Corpse'S Pat O'Brien Will Step In As Slayer'S Guest Guitarist | The Official Slayer Site”originalet”Slayer Wins 'Best Metal' Grammy Award””Slayer Guitarist Jeff Hanneman Dies””Kerrang! Awards 2006 Blog: Kerrang! Hall Of Fame””Kerrang! Awards 2013: Kerrang! Legend”originalet”Metallica, Slayer, Iron Maien Among Winners At Metal Hammer Awards””Metal Hammer Golden Gods Awards””Bullet For My Valentine Booed At Metal Hammer Golden Gods Awards””Metal Storm Awards 2006””Metal Storm Awards 2015””Slayer's Concert History””Slayer - Relationships””Slayer - Releases”Slayers officiella webbplatsSlayer på MusicBrainzOfficiell webbplatsSlayerSlayerr1373445760000 0001 1540 47353068615-5086262726cb13906545x(data)6033143kn20030215029