Splitting image dataset with few subjects but many data












1












$begingroup$


I'm carrying out training/testing of a convolutional neural network for facial expression recognition with various datasets - all labelled by 7 emotion classes.



For other datasets, there are a large number of mostly unique subjects so I randomly split. In this case, however, there are only 6 subjects but a large number of images for each subject in each class. Randomly splitting seems ineffective because of the similarity in images - think of how an emotion changes per frame.



Is the best method to separate an entire subject for testing? Or something else?



I did run the network with random splitting and achieved 100% validation accuracy so I believe that is unlikely to be the best method. Thanks for your time.










share|improve this question









New contributor




McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$

















    1












    $begingroup$


    I'm carrying out training/testing of a convolutional neural network for facial expression recognition with various datasets - all labelled by 7 emotion classes.



    For other datasets, there are a large number of mostly unique subjects so I randomly split. In this case, however, there are only 6 subjects but a large number of images for each subject in each class. Randomly splitting seems ineffective because of the similarity in images - think of how an emotion changes per frame.



    Is the best method to separate an entire subject for testing? Or something else?



    I did run the network with random splitting and achieved 100% validation accuracy so I believe that is unlikely to be the best method. Thanks for your time.










    share|improve this question









    New contributor




    McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$















      1












      1








      1





      $begingroup$


      I'm carrying out training/testing of a convolutional neural network for facial expression recognition with various datasets - all labelled by 7 emotion classes.



      For other datasets, there are a large number of mostly unique subjects so I randomly split. In this case, however, there are only 6 subjects but a large number of images for each subject in each class. Randomly splitting seems ineffective because of the similarity in images - think of how an emotion changes per frame.



      Is the best method to separate an entire subject for testing? Or something else?



      I did run the network with random splitting and achieved 100% validation accuracy so I believe that is unlikely to be the best method. Thanks for your time.










      share|improve this question









      New contributor




      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      I'm carrying out training/testing of a convolutional neural network for facial expression recognition with various datasets - all labelled by 7 emotion classes.



      For other datasets, there are a large number of mostly unique subjects so I randomly split. In this case, however, there are only 6 subjects but a large number of images for each subject in each class. Randomly splitting seems ineffective because of the similarity in images - think of how an emotion changes per frame.



      Is the best method to separate an entire subject for testing? Or something else?



      I did run the network with random splitting and achieved 100% validation accuracy so I believe that is unlikely to be the best method. Thanks for your time.







      machine-learning neural-network






      share|improve this question









      New contributor




      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 14 hours ago







      McGuile













      New contributor




      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 14 hours ago









      McGuileMcGuile

      1084




      1084




      New contributor




      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      McGuile is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes


















          1












          $begingroup$

          I think you're hitting on the fact that by training and testing on the same subjects your model is not going to be able to generalize to new subjects very well. If you're only interested predicting emotions for these subjects, you are taking the right approach. However, if you want to generalize your model to new, unseen subjects, you should split your training and testing sets such that subjects in the training set are not in the test set, and vice versa to get a more accurate test score. Most likely it will not perform as well and you should consider collecting more data on new subjects if possible.



          Here is a similar question on Stack Exchange.






          share|improve this answer








          New contributor




          Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          $endgroup$













            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
            });
            });
            }, "mathjax-editing");

            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/3.0/"u003ecc by-sa 3.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
            });


            }
            });






            McGuile is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f45379%2fsplitting-image-dataset-with-few-subjects-but-many-data%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1












            $begingroup$

            I think you're hitting on the fact that by training and testing on the same subjects your model is not going to be able to generalize to new subjects very well. If you're only interested predicting emotions for these subjects, you are taking the right approach. However, if you want to generalize your model to new, unseen subjects, you should split your training and testing sets such that subjects in the training set are not in the test set, and vice versa to get a more accurate test score. Most likely it will not perform as well and you should consider collecting more data on new subjects if possible.



            Here is a similar question on Stack Exchange.






            share|improve this answer








            New contributor




            Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.






            $endgroup$


















              1












              $begingroup$

              I think you're hitting on the fact that by training and testing on the same subjects your model is not going to be able to generalize to new subjects very well. If you're only interested predicting emotions for these subjects, you are taking the right approach. However, if you want to generalize your model to new, unseen subjects, you should split your training and testing sets such that subjects in the training set are not in the test set, and vice versa to get a more accurate test score. Most likely it will not perform as well and you should consider collecting more data on new subjects if possible.



              Here is a similar question on Stack Exchange.






              share|improve this answer








              New contributor




              Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.






              $endgroup$
















                1












                1








                1





                $begingroup$

                I think you're hitting on the fact that by training and testing on the same subjects your model is not going to be able to generalize to new subjects very well. If you're only interested predicting emotions for these subjects, you are taking the right approach. However, if you want to generalize your model to new, unseen subjects, you should split your training and testing sets such that subjects in the training set are not in the test set, and vice versa to get a more accurate test score. Most likely it will not perform as well and you should consider collecting more data on new subjects if possible.



                Here is a similar question on Stack Exchange.






                share|improve this answer








                New contributor




                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                $endgroup$



                I think you're hitting on the fact that by training and testing on the same subjects your model is not going to be able to generalize to new subjects very well. If you're only interested predicting emotions for these subjects, you are taking the right approach. However, if you want to generalize your model to new, unseen subjects, you should split your training and testing sets such that subjects in the training set are not in the test set, and vice versa to get a more accurate test score. Most likely it will not perform as well and you should consider collecting more data on new subjects if possible.



                Here is a similar question on Stack Exchange.







                share|improve this answer








                New contributor




                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer






                New contributor




                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 12 hours ago









                WesWes

                965




                965




                New contributor




                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                Wes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






















                    McGuile is a new contributor. Be nice, and check out our Code of Conduct.










                    draft saved

                    draft discarded


















                    McGuile is a new contributor. Be nice, and check out our Code of Conduct.













                    McGuile is a new contributor. Be nice, and check out our Code of Conduct.












                    McGuile is a new contributor. Be nice, and check out our Code of Conduct.
















                    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%2f45379%2fsplitting-image-dataset-with-few-subjects-but-many-data%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

                    How to label and detect the document text images

                    Vallis Paradisi

                    Tabula Rosettana