Do I need to encode the target variable for sklearn logistic regression












1












$begingroup$


I'm trying to get familiar with the sklearn library, and now I'm trying to implement logistic regression for a dataframe containing numerical and categorical values to predict a binary target variable.

While reading some documentation I found the logistic regression should be used to predict binary variables presented by 0 and 1.

My target variable is "YES" and "NO", should I code it to 0 and 1 for the algorithm to work properly, or there is no difference?

Maybe I just didn't get the idea but can someone confirm this to me.










share|improve this question







New contributor




Green 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 trying to get familiar with the sklearn library, and now I'm trying to implement logistic regression for a dataframe containing numerical and categorical values to predict a binary target variable.

    While reading some documentation I found the logistic regression should be used to predict binary variables presented by 0 and 1.

    My target variable is "YES" and "NO", should I code it to 0 and 1 for the algorithm to work properly, or there is no difference?

    Maybe I just didn't get the idea but can someone confirm this to me.










    share|improve this question







    New contributor




    Green 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 trying to get familiar with the sklearn library, and now I'm trying to implement logistic regression for a dataframe containing numerical and categorical values to predict a binary target variable.

      While reading some documentation I found the logistic regression should be used to predict binary variables presented by 0 and 1.

      My target variable is "YES" and "NO", should I code it to 0 and 1 for the algorithm to work properly, or there is no difference?

      Maybe I just didn't get the idea but can someone confirm this to me.










      share|improve this question







      New contributor




      Green 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 trying to get familiar with the sklearn library, and now I'm trying to implement logistic regression for a dataframe containing numerical and categorical values to predict a binary target variable.

      While reading some documentation I found the logistic regression should be used to predict binary variables presented by 0 and 1.

      My target variable is "YES" and "NO", should I code it to 0 and 1 for the algorithm to work properly, or there is no difference?

      Maybe I just didn't get the idea but can someone confirm this to me.







      scikit-learn logistic-regression






      share|improve this question







      New contributor




      Green 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




      Green 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






      New contributor




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









      asked 2 days ago









      GreenGreen

      84




      84




      New contributor




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





      New contributor





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






      Green 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$

          The string labels work just fine, here is an example:



          from sklearn.datasets import load_iris
          from sklearn.linear_model import LogisticRegression
          import numpy
          X, y = load_iris(return_X_y=True)
          y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
          clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
          y_pred = clf.predict(X[50:100, :])
          print(y_pred)


          Output:



          ['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
          'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
          'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
          'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']


          Yo can replace y_string to y for the numerical example.






          share|improve this answer









          $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
            });


            }
            });






            Green 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%2f47248%2fdo-i-need-to-encode-the-target-variable-for-sklearn-logistic-regression%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$

            The string labels work just fine, here is an example:



            from sklearn.datasets import load_iris
            from sklearn.linear_model import LogisticRegression
            import numpy
            X, y = load_iris(return_X_y=True)
            y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
            clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
            y_pred = clf.predict(X[50:100, :])
            print(y_pred)


            Output:



            ['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
            'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
            'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
            'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']


            Yo can replace y_string to y for the numerical example.






            share|improve this answer









            $endgroup$


















              1












              $begingroup$

              The string labels work just fine, here is an example:



              from sklearn.datasets import load_iris
              from sklearn.linear_model import LogisticRegression
              import numpy
              X, y = load_iris(return_X_y=True)
              y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
              clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
              y_pred = clf.predict(X[50:100, :])
              print(y_pred)


              Output:



              ['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
              'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
              'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
              'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']


              Yo can replace y_string to y for the numerical example.






              share|improve this answer









              $endgroup$
















                1












                1








                1





                $begingroup$

                The string labels work just fine, here is an example:



                from sklearn.datasets import load_iris
                from sklearn.linear_model import LogisticRegression
                import numpy
                X, y = load_iris(return_X_y=True)
                y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
                clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
                y_pred = clf.predict(X[50:100, :])
                print(y_pred)


                Output:



                ['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
                'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
                'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
                'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']


                Yo can replace y_string to y for the numerical example.






                share|improve this answer









                $endgroup$



                The string labels work just fine, here is an example:



                from sklearn.datasets import load_iris
                from sklearn.linear_model import LogisticRegression
                import numpy
                X, y = load_iris(return_X_y=True)
                y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
                clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
                y_pred = clf.predict(X[50:100, :])
                print(y_pred)


                Output:



                ['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
                'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
                'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
                'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']


                Yo can replace y_string to y for the numerical example.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 days ago









                EsmailianEsmailian

                1,096112




                1,096112






















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










                    draft saved

                    draft discarded


















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













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












                    Green 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%2f47248%2fdo-i-need-to-encode-the-target-variable-for-sklearn-logistic-regression%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