Imputation on the test set with fancyimpute










1















The python package Fancyimpute provides several methods for the imputation of missing values in Python. The documentation provides examples such as:



# X is the complete data matrix
# X_incomplete has the same values as X except a subset have been replace with NaN

# Model each feature with missing values as a function of other features, and
# use that estimate for imputation.
X_filled_ii = IterativeImputer().fit_transform(X_incomplete)


This works fine when applying the imputation method to a dataset X. But what if a training/test split is necessary? Once



X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)


is called, how do I impute the test set and create X_test_filled? The test set needs to be imputed using the information from the training set. I guess that IterativeImputer() should returns and object that can fit X_test_incomplete. Is that possible?



Please note that imputing on the whole dataset and then split into training and test set is not correct.










share|improve this question


























    1















    The python package Fancyimpute provides several methods for the imputation of missing values in Python. The documentation provides examples such as:



    # X is the complete data matrix
    # X_incomplete has the same values as X except a subset have been replace with NaN

    # Model each feature with missing values as a function of other features, and
    # use that estimate for imputation.
    X_filled_ii = IterativeImputer().fit_transform(X_incomplete)


    This works fine when applying the imputation method to a dataset X. But what if a training/test split is necessary? Once



    X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)


    is called, how do I impute the test set and create X_test_filled? The test set needs to be imputed using the information from the training set. I guess that IterativeImputer() should returns and object that can fit X_test_incomplete. Is that possible?



    Please note that imputing on the whole dataset and then split into training and test set is not correct.










    share|improve this question
























      1












      1








      1








      The python package Fancyimpute provides several methods for the imputation of missing values in Python. The documentation provides examples such as:



      # X is the complete data matrix
      # X_incomplete has the same values as X except a subset have been replace with NaN

      # Model each feature with missing values as a function of other features, and
      # use that estimate for imputation.
      X_filled_ii = IterativeImputer().fit_transform(X_incomplete)


      This works fine when applying the imputation method to a dataset X. But what if a training/test split is necessary? Once



      X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)


      is called, how do I impute the test set and create X_test_filled? The test set needs to be imputed using the information from the training set. I guess that IterativeImputer() should returns and object that can fit X_test_incomplete. Is that possible?



      Please note that imputing on the whole dataset and then split into training and test set is not correct.










      share|improve this question














      The python package Fancyimpute provides several methods for the imputation of missing values in Python. The documentation provides examples such as:



      # X is the complete data matrix
      # X_incomplete has the same values as X except a subset have been replace with NaN

      # Model each feature with missing values as a function of other features, and
      # use that estimate for imputation.
      X_filled_ii = IterativeImputer().fit_transform(X_incomplete)


      This works fine when applying the imputation method to a dataset X. But what if a training/test split is necessary? Once



      X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)


      is called, how do I impute the test set and create X_test_filled? The test set needs to be imputed using the information from the training set. I guess that IterativeImputer() should returns and object that can fit X_test_incomplete. Is that possible?



      Please note that imputing on the whole dataset and then split into training and test set is not correct.







      python missing-data imputation fancyimpute






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 14:57









      Titus PulloTitus Pullo

      1,32872950




      1,32872950






















          1 Answer
          1






          active

          oldest

          votes


















          1














          The package looks like it mimic's scikit-learn's API. And after looking in the source code, it looks like it does have a transform method.



          my_imputer = IterativeImputer()
          X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

          # now transform test
          X_test_filled = my_imputer.transform(X_test)


          The imputer will apply the same imputations that it learned from the training set.






          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            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: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            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
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322182%2fimputation-on-the-test-set-with-fancyimpute%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














            The package looks like it mimic's scikit-learn's API. And after looking in the source code, it looks like it does have a transform method.



            my_imputer = IterativeImputer()
            X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

            # now transform test
            X_test_filled = my_imputer.transform(X_test)


            The imputer will apply the same imputations that it learned from the training set.






            share|improve this answer



























              1














              The package looks like it mimic's scikit-learn's API. And after looking in the source code, it looks like it does have a transform method.



              my_imputer = IterativeImputer()
              X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

              # now transform test
              X_test_filled = my_imputer.transform(X_test)


              The imputer will apply the same imputations that it learned from the training set.






              share|improve this answer

























                1












                1








                1







                The package looks like it mimic's scikit-learn's API. And after looking in the source code, it looks like it does have a transform method.



                my_imputer = IterativeImputer()
                X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

                # now transform test
                X_test_filled = my_imputer.transform(X_test)


                The imputer will apply the same imputations that it learned from the training set.






                share|improve this answer













                The package looks like it mimic's scikit-learn's API. And after looking in the source code, it looks like it does have a transform method.



                my_imputer = IterativeImputer()
                X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

                # now transform test
                X_test_filled = my_imputer.transform(X_test)


                The imputer will apply the same imputations that it learned from the training set.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 15 '18 at 15:04









                Scratch'N'PurrScratch'N'Purr

                3,6941221




                3,6941221





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • 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.

                    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%2fstackoverflow.com%2fquestions%2f53322182%2fimputation-on-the-test-set-with-fancyimpute%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

                    Top Tejano songwriter Luis Silva dead of heart attack at 64

                    ReactJS Fetched API data displays live - need Data displayed static

                    政党