Can an output class be defaulted?2019 Community Moderator Electionhow to make new class from the test dataMulti-class neural net always predicting 1 class after optimizationHow can we model the class which maximizes the event probability?Predict class having only class proportions for every attribute (non labeled data)Is it bad practice to use multi-class over multi-label classification?Binary classificaiton for weather data if its class 1 or class 0 alertMulti-Class Neural Networks | different featuresBalancing XGboost still skews towards the majority classHow to approach a machine learning problem?Multi-class classification as a hypothesis testing problem

Is it possible to run Internet Explorer on OS X El Capitan?

Does object always see its latest internal state irrespective of thread?

Perform and show arithmetic with LuaLaTeX

Paid for article while in US on F-1 visa?

Can you really stack all of this on an Opportunity Attack?

Arrow those variables!

Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?

Are the number of citations and number of published articles the most important criteria for a tenure promotion?

dbcc cleantable batch size explanation

I'm flying to France today and my passport expires in less than 2 months

Is it possible to do 50 km distance without any previous training?

How can I prevent hyper evolved versions of regular creatures from wiping out their cousins?

Approximately how much travel time was saved by the opening of the Suez Canal in 1869?

Did Shadowfax go to Valinor?

Alternative to sending password over mail?

How do I deal with an unproductive colleague in a small company?

Was any UN Security Council vote triple-vetoed?

Important Resources for Dark Age Civilizations?

Which country benefited the most from UN Security Council vetoes?

Client team has low performances and low technical skills: we always fix their work and now they stop collaborate with us. How to solve?

Does detail obscure or enhance action?

Could an aircraft fly or hover using only jets of compressed air?

Today is the Center

DC-DC converter from low voltage at high current, to high voltage at low current



Can an output class be defaulted?



2019 Community Moderator Electionhow to make new class from the test dataMulti-class neural net always predicting 1 class after optimizationHow can we model the class which maximizes the event probability?Predict class having only class proportions for every attribute (non labeled data)Is it bad practice to use multi-class over multi-label classification?Binary classificaiton for weather data if its class 1 or class 0 alertMulti-Class Neural Networks | different featuresBalancing XGboost still skews towards the majority classHow to approach a machine learning problem?Multi-class classification as a hypothesis testing problem










0












$begingroup$


In my use-case of multi-class classification, my data distribution is like below:
enter image description here



It might be too silly to ask this (and possibly could be gravely wrong), but is there a provision to default an o/p class to a value which is safe to be defaulted than to be predicted a completely wrong outcome.



Ex. Suppose the case, where an incoming email meant to be for "hardware" department but is predicted as for "Company Leadership" department and hence routed to all senior members of the company. In such case, since the prediction accuracy of the entire output class is below say 20% accuracy, I would like to default that entire class to "service desk" group and let them manually sort it.



Hope I made my question clear (Might be confusing as well!). Please let me know if any clarifications required. I would be happy to amend the wordings.



Thanks. :)










share|improve this question









$endgroup$
















    0












    $begingroup$


    In my use-case of multi-class classification, my data distribution is like below:
    enter image description here



    It might be too silly to ask this (and possibly could be gravely wrong), but is there a provision to default an o/p class to a value which is safe to be defaulted than to be predicted a completely wrong outcome.



    Ex. Suppose the case, where an incoming email meant to be for "hardware" department but is predicted as for "Company Leadership" department and hence routed to all senior members of the company. In such case, since the prediction accuracy of the entire output class is below say 20% accuracy, I would like to default that entire class to "service desk" group and let them manually sort it.



    Hope I made my question clear (Might be confusing as well!). Please let me know if any clarifications required. I would be happy to amend the wordings.



    Thanks. :)










    share|improve this question









    $endgroup$














      0












      0








      0





      $begingroup$


      In my use-case of multi-class classification, my data distribution is like below:
      enter image description here



      It might be too silly to ask this (and possibly could be gravely wrong), but is there a provision to default an o/p class to a value which is safe to be defaulted than to be predicted a completely wrong outcome.



      Ex. Suppose the case, where an incoming email meant to be for "hardware" department but is predicted as for "Company Leadership" department and hence routed to all senior members of the company. In such case, since the prediction accuracy of the entire output class is below say 20% accuracy, I would like to default that entire class to "service desk" group and let them manually sort it.



      Hope I made my question clear (Might be confusing as well!). Please let me know if any clarifications required. I would be happy to amend the wordings.



      Thanks. :)










      share|improve this question









      $endgroup$




      In my use-case of multi-class classification, my data distribution is like below:
      enter image description here



      It might be too silly to ask this (and possibly could be gravely wrong), but is there a provision to default an o/p class to a value which is safe to be defaulted than to be predicted a completely wrong outcome.



      Ex. Suppose the case, where an incoming email meant to be for "hardware" department but is predicted as for "Company Leadership" department and hence routed to all senior members of the company. In such case, since the prediction accuracy of the entire output class is below say 20% accuracy, I would like to default that entire class to "service desk" group and let them manually sort it.



      Hope I made my question clear (Might be confusing as well!). Please let me know if any clarifications required. I would be happy to amend the wordings.



      Thanks. :)







      classification predictive-modeling multilabel-classification






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 5 hours ago









      ranit.branit.b

      807




      807




















          1 Answer
          1






          active

          oldest

          votes


















          0












          $begingroup$

          I don't think there is a standard method to do this. But if you use a probabilistic model you can use the predicted probability together with thresholds on each class to only allow classifications that you deem certain enough. Then if the class with the highest probability does not meet the threshold you can set it to the default class.



          I tested it out with sklearn and numpy, this could be an approach:



          # Train probabilistic classifier
          clf.fit(X_train, y_train)

          # Get probabilities
          probas = clf.predict_proba(X_test)

          # Get the class with highest probability
          highest_proba_class = np.argmax(probas, axis=1)

          # Set different thresholds per class
          thresholds = np.array([0.9, 0.2, 0.5])

          # Init our prediction array
          predictions = np.zeros_like(highest_proba_class)

          # Set a default class to set if we don't reach threshold
          default_class = 2

          # Loop over predictions
          for idx, highest_class in enumerate(highest_proba_class):

          # Threshold check if threshold was met, otherwise set default
          if probas[idx][highest_class] >= thresholds[highest_class]:
          predictions[idx] = highest_class
          else:
          predictions[idx] = default_class





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



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48702%2fcan-an-output-class-be-defaulted%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









            0












            $begingroup$

            I don't think there is a standard method to do this. But if you use a probabilistic model you can use the predicted probability together with thresholds on each class to only allow classifications that you deem certain enough. Then if the class with the highest probability does not meet the threshold you can set it to the default class.



            I tested it out with sklearn and numpy, this could be an approach:



            # Train probabilistic classifier
            clf.fit(X_train, y_train)

            # Get probabilities
            probas = clf.predict_proba(X_test)

            # Get the class with highest probability
            highest_proba_class = np.argmax(probas, axis=1)

            # Set different thresholds per class
            thresholds = np.array([0.9, 0.2, 0.5])

            # Init our prediction array
            predictions = np.zeros_like(highest_proba_class)

            # Set a default class to set if we don't reach threshold
            default_class = 2

            # Loop over predictions
            for idx, highest_class in enumerate(highest_proba_class):

            # Threshold check if threshold was met, otherwise set default
            if probas[idx][highest_class] >= thresholds[highest_class]:
            predictions[idx] = highest_class
            else:
            predictions[idx] = default_class





            share|improve this answer











            $endgroup$

















              0












              $begingroup$

              I don't think there is a standard method to do this. But if you use a probabilistic model you can use the predicted probability together with thresholds on each class to only allow classifications that you deem certain enough. Then if the class with the highest probability does not meet the threshold you can set it to the default class.



              I tested it out with sklearn and numpy, this could be an approach:



              # Train probabilistic classifier
              clf.fit(X_train, y_train)

              # Get probabilities
              probas = clf.predict_proba(X_test)

              # Get the class with highest probability
              highest_proba_class = np.argmax(probas, axis=1)

              # Set different thresholds per class
              thresholds = np.array([0.9, 0.2, 0.5])

              # Init our prediction array
              predictions = np.zeros_like(highest_proba_class)

              # Set a default class to set if we don't reach threshold
              default_class = 2

              # Loop over predictions
              for idx, highest_class in enumerate(highest_proba_class):

              # Threshold check if threshold was met, otherwise set default
              if probas[idx][highest_class] >= thresholds[highest_class]:
              predictions[idx] = highest_class
              else:
              predictions[idx] = default_class





              share|improve this answer











              $endgroup$















                0












                0








                0





                $begingroup$

                I don't think there is a standard method to do this. But if you use a probabilistic model you can use the predicted probability together with thresholds on each class to only allow classifications that you deem certain enough. Then if the class with the highest probability does not meet the threshold you can set it to the default class.



                I tested it out with sklearn and numpy, this could be an approach:



                # Train probabilistic classifier
                clf.fit(X_train, y_train)

                # Get probabilities
                probas = clf.predict_proba(X_test)

                # Get the class with highest probability
                highest_proba_class = np.argmax(probas, axis=1)

                # Set different thresholds per class
                thresholds = np.array([0.9, 0.2, 0.5])

                # Init our prediction array
                predictions = np.zeros_like(highest_proba_class)

                # Set a default class to set if we don't reach threshold
                default_class = 2

                # Loop over predictions
                for idx, highest_class in enumerate(highest_proba_class):

                # Threshold check if threshold was met, otherwise set default
                if probas[idx][highest_class] >= thresholds[highest_class]:
                predictions[idx] = highest_class
                else:
                predictions[idx] = default_class





                share|improve this answer











                $endgroup$



                I don't think there is a standard method to do this. But if you use a probabilistic model you can use the predicted probability together with thresholds on each class to only allow classifications that you deem certain enough. Then if the class with the highest probability does not meet the threshold you can set it to the default class.



                I tested it out with sklearn and numpy, this could be an approach:



                # Train probabilistic classifier
                clf.fit(X_train, y_train)

                # Get probabilities
                probas = clf.predict_proba(X_test)

                # Get the class with highest probability
                highest_proba_class = np.argmax(probas, axis=1)

                # Set different thresholds per class
                thresholds = np.array([0.9, 0.2, 0.5])

                # Init our prediction array
                predictions = np.zeros_like(highest_proba_class)

                # Set a default class to set if we don't reach threshold
                default_class = 2

                # Loop over predictions
                for idx, highest_class in enumerate(highest_proba_class):

                # Threshold check if threshold was met, otherwise set default
                if probas[idx][highest_class] >= thresholds[highest_class]:
                predictions[idx] = highest_class
                else:
                predictions[idx] = default_class






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 1 hour ago

























                answered 4 hours ago









                Simon LarssonSimon Larsson

                673113




                673113



























                    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%2f48702%2fcan-an-output-class-be-defaulted%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

                    Ружовы пелікан Змест Знешні выгляд | Пашырэнне | Асаблівасці біялогіі | Літаратура | НавігацыяДагледжаная версіяправерана1 зменаДагледжаная версіяправерана1 змена/ 22697590 Сістэматыкана ВіківідахВыявына Вікісховішчы174693363011049382

                    ValueError: Error when checking input: expected conv2d_13_input to have shape (3, 150, 150) but got array with shape (150, 150, 3)2019 Community Moderator ElectionError when checking : expected dense_1_input to have shape (None, 5) but got array with shape (200, 1)Error 'Expected 2D array, got 1D array instead:'ValueError: Error when checking input: expected lstm_41_input to have 3 dimensions, but got array with shape (40000,100)ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)ValueError: Error when checking target: expected dense_2 to have shape (1,) but got array with shape (0,)Keras exception: ValueError: Error when checking input: expected conv2d_1_input to have shape (150, 150, 3) but got array with shape (256, 256, 3)Steps taking too long to completewhen checking input: expected dense_1_input to have shape (13328,) but got array with shape (317,)ValueError: Error when checking target: expected dense_3 to have shape (None, 1) but got array with shape (7715, 40000)Keras exception: Error when checking input: expected dense_input to have shape (2,) but got array with shape (1,)

                    Illegal assignment from SObject to ContactFetching String, Id from Map - Illegal Assignment Id to Field / ObjectError: Compile Error: Illegal assignment from String to BooleanError: List has no rows for assignment to SObjectError on Test Class - System.QueryException: List has no rows for assignment to SObjectRemote action problemDML requires SObject or SObject list type error“Illegal assignment from List to List”Test Class Fail: Batch Class: System.QueryException: List has no rows for assignment to SObjectMapping to a user'List has no rows for assignment to SObject' Mystery