which classification model allows user to choose importance of data inputs?












2












$begingroup$


I am working on a match analytics project where I have to deal with the situation in which I am having some inputs like skills, experience, certifications etc. and my output is candidate selected Yes or No, my problem is, Is there any algorithm which will allow users to give weightage to one Input than the others? For example skills matters more for someone whereas for other user experience matters . I have tried neural network and Naive bayes algorithm but unable to choose importance of variable . Any help will be highly appreciable.










share|improve this question







New contributor




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







$endgroup$

















    2












    $begingroup$


    I am working on a match analytics project where I have to deal with the situation in which I am having some inputs like skills, experience, certifications etc. and my output is candidate selected Yes or No, my problem is, Is there any algorithm which will allow users to give weightage to one Input than the others? For example skills matters more for someone whereas for other user experience matters . I have tried neural network and Naive bayes algorithm but unable to choose importance of variable . Any help will be highly appreciable.










    share|improve this question







    New contributor




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







    $endgroup$















      2












      2








      2





      $begingroup$


      I am working on a match analytics project where I have to deal with the situation in which I am having some inputs like skills, experience, certifications etc. and my output is candidate selected Yes or No, my problem is, Is there any algorithm which will allow users to give weightage to one Input than the others? For example skills matters more for someone whereas for other user experience matters . I have tried neural network and Naive bayes algorithm but unable to choose importance of variable . Any help will be highly appreciable.










      share|improve this question







      New contributor




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







      $endgroup$




      I am working on a match analytics project where I have to deal with the situation in which I am having some inputs like skills, experience, certifications etc. and my output is candidate selected Yes or No, my problem is, Is there any algorithm which will allow users to give weightage to one Input than the others? For example skills matters more for someone whereas for other user experience matters . I have tried neural network and Naive bayes algorithm but unable to choose importance of variable . Any help will be highly appreciable.







      machine-learning python neural-network classification r






      share|improve this question







      New contributor




      Abhigyan pandey 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




      Abhigyan pandey 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




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









      asked yesterday









      Abhigyan pandeyAbhigyan pandey

      111




      111




      New contributor




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





      New contributor





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






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






















          3 Answers
          3






          active

          oldest

          votes


















          1












          $begingroup$

          The answer is that you don't need to . Say you decide to go with some classification model, for instance a simple decision tree, the model in question will implicitly learn which are the importances (or weights) of the features of your training data, and will use these features as main nodes of the tree.



          To better understand this idea, lets take as an example the ID3 algorithm, which is one of the several existing algorithms to generate decision trees from a dataset. This algorithm will build a tree by iteratively setting as decision nodes those features that maximise the information gain at each step, or in other words, those that are the best predictors.



          So it will implicitly be giving more importance to the attributes that are better predictors, hence there is no need to assign weights to the features of the dataset.



          So my suggestion is that you try using some classifier from scikit-learn such as RandomForestClassifier for instance.






          share|improve this answer










          New contributor




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






          $endgroup$













          • $begingroup$
            Can you suggest then any alternative algorithm or simple mathematical function I should use
            $endgroup$
            – Abhigyan pandey
            yesterday










          • $begingroup$
            Yes updated with an example. Have a look at the classifiers in scikit learn
            $endgroup$
            – yatu
            yesterday



















          0












          $begingroup$

          You should avoid competing with any algorithm for feature importance but for now let us see the other side of the coin. Here I am thinking for the user. Maybe it is a good idea to give the user the power to select people base on certain criteria so giving weights for certain features make sense.



          Rpart has this option (the parameter cost which ranges from 0 to 1).



          It might also be good idea if users can ignore other variables so you will make a model for each subsets of all features.






          share|improve this answer









          $endgroup$





















            0












            $begingroup$

            Since you mention the neural networks ...



            Input weights in neural networks



            Giving more weight to some inputs in a neural network could be easily done by multiplying the input with some weights you predefine.



            Example in TF: (assuming inputs are arrays of numbers of size 3):



            input = tf.placeholder(tf.float32, shape=(1, 3))
            weights = tf.constant([2, 1, 3], dtype=tf.float32) # weights for input
            weighted_input = tf.multiply(input, weights)
            ... rest ot the network ...


            But, as others already mentioned, you should be careful with playing with weighted inputs in machine learning algorithms, in this case neural network, since those things should be learned by the model.






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


              }
              });






              Abhigyan pandey 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%2f45947%2fwhich-classification-model-allows-user-to-choose-importance-of-data-inputs%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









              1












              $begingroup$

              The answer is that you don't need to . Say you decide to go with some classification model, for instance a simple decision tree, the model in question will implicitly learn which are the importances (or weights) of the features of your training data, and will use these features as main nodes of the tree.



              To better understand this idea, lets take as an example the ID3 algorithm, which is one of the several existing algorithms to generate decision trees from a dataset. This algorithm will build a tree by iteratively setting as decision nodes those features that maximise the information gain at each step, or in other words, those that are the best predictors.



              So it will implicitly be giving more importance to the attributes that are better predictors, hence there is no need to assign weights to the features of the dataset.



              So my suggestion is that you try using some classifier from scikit-learn such as RandomForestClassifier for instance.






              share|improve this answer










              New contributor




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






              $endgroup$













              • $begingroup$
                Can you suggest then any alternative algorithm or simple mathematical function I should use
                $endgroup$
                – Abhigyan pandey
                yesterday










              • $begingroup$
                Yes updated with an example. Have a look at the classifiers in scikit learn
                $endgroup$
                – yatu
                yesterday
















              1












              $begingroup$

              The answer is that you don't need to . Say you decide to go with some classification model, for instance a simple decision tree, the model in question will implicitly learn which are the importances (or weights) of the features of your training data, and will use these features as main nodes of the tree.



              To better understand this idea, lets take as an example the ID3 algorithm, which is one of the several existing algorithms to generate decision trees from a dataset. This algorithm will build a tree by iteratively setting as decision nodes those features that maximise the information gain at each step, or in other words, those that are the best predictors.



              So it will implicitly be giving more importance to the attributes that are better predictors, hence there is no need to assign weights to the features of the dataset.



              So my suggestion is that you try using some classifier from scikit-learn such as RandomForestClassifier for instance.






              share|improve this answer










              New contributor




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






              $endgroup$













              • $begingroup$
                Can you suggest then any alternative algorithm or simple mathematical function I should use
                $endgroup$
                – Abhigyan pandey
                yesterday










              • $begingroup$
                Yes updated with an example. Have a look at the classifiers in scikit learn
                $endgroup$
                – yatu
                yesterday














              1












              1








              1





              $begingroup$

              The answer is that you don't need to . Say you decide to go with some classification model, for instance a simple decision tree, the model in question will implicitly learn which are the importances (or weights) of the features of your training data, and will use these features as main nodes of the tree.



              To better understand this idea, lets take as an example the ID3 algorithm, which is one of the several existing algorithms to generate decision trees from a dataset. This algorithm will build a tree by iteratively setting as decision nodes those features that maximise the information gain at each step, or in other words, those that are the best predictors.



              So it will implicitly be giving more importance to the attributes that are better predictors, hence there is no need to assign weights to the features of the dataset.



              So my suggestion is that you try using some classifier from scikit-learn such as RandomForestClassifier for instance.






              share|improve this answer










              New contributor




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






              $endgroup$



              The answer is that you don't need to . Say you decide to go with some classification model, for instance a simple decision tree, the model in question will implicitly learn which are the importances (or weights) of the features of your training data, and will use these features as main nodes of the tree.



              To better understand this idea, lets take as an example the ID3 algorithm, which is one of the several existing algorithms to generate decision trees from a dataset. This algorithm will build a tree by iteratively setting as decision nodes those features that maximise the information gain at each step, or in other words, those that are the best predictors.



              So it will implicitly be giving more importance to the attributes that are better predictors, hence there is no need to assign weights to the features of the dataset.



              So my suggestion is that you try using some classifier from scikit-learn such as RandomForestClassifier for instance.







              share|improve this answer










              New contributor




              yatu 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








              edited yesterday





















              New contributor




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









              answered yesterday









              yatuyatu

              1214




              1214




              New contributor




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





              New contributor





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






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












              • $begingroup$
                Can you suggest then any alternative algorithm or simple mathematical function I should use
                $endgroup$
                – Abhigyan pandey
                yesterday










              • $begingroup$
                Yes updated with an example. Have a look at the classifiers in scikit learn
                $endgroup$
                – yatu
                yesterday


















              • $begingroup$
                Can you suggest then any alternative algorithm or simple mathematical function I should use
                $endgroup$
                – Abhigyan pandey
                yesterday










              • $begingroup$
                Yes updated with an example. Have a look at the classifiers in scikit learn
                $endgroup$
                – yatu
                yesterday
















              $begingroup$
              Can you suggest then any alternative algorithm or simple mathematical function I should use
              $endgroup$
              – Abhigyan pandey
              yesterday




              $begingroup$
              Can you suggest then any alternative algorithm or simple mathematical function I should use
              $endgroup$
              – Abhigyan pandey
              yesterday












              $begingroup$
              Yes updated with an example. Have a look at the classifiers in scikit learn
              $endgroup$
              – yatu
              yesterday




              $begingroup$
              Yes updated with an example. Have a look at the classifiers in scikit learn
              $endgroup$
              – yatu
              yesterday











              0












              $begingroup$

              You should avoid competing with any algorithm for feature importance but for now let us see the other side of the coin. Here I am thinking for the user. Maybe it is a good idea to give the user the power to select people base on certain criteria so giving weights for certain features make sense.



              Rpart has this option (the parameter cost which ranges from 0 to 1).



              It might also be good idea if users can ignore other variables so you will make a model for each subsets of all features.






              share|improve this answer









              $endgroup$


















                0












                $begingroup$

                You should avoid competing with any algorithm for feature importance but for now let us see the other side of the coin. Here I am thinking for the user. Maybe it is a good idea to give the user the power to select people base on certain criteria so giving weights for certain features make sense.



                Rpart has this option (the parameter cost which ranges from 0 to 1).



                It might also be good idea if users can ignore other variables so you will make a model for each subsets of all features.






                share|improve this answer









                $endgroup$
















                  0












                  0








                  0





                  $begingroup$

                  You should avoid competing with any algorithm for feature importance but for now let us see the other side of the coin. Here I am thinking for the user. Maybe it is a good idea to give the user the power to select people base on certain criteria so giving weights for certain features make sense.



                  Rpart has this option (the parameter cost which ranges from 0 to 1).



                  It might also be good idea if users can ignore other variables so you will make a model for each subsets of all features.






                  share|improve this answer









                  $endgroup$



                  You should avoid competing with any algorithm for feature importance but for now let us see the other side of the coin. Here I am thinking for the user. Maybe it is a good idea to give the user the power to select people base on certain criteria so giving weights for certain features make sense.



                  Rpart has this option (the parameter cost which ranges from 0 to 1).



                  It might also be good idea if users can ignore other variables so you will make a model for each subsets of all features.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered yesterday









                  bonez001bonez001

                  364




                  364























                      0












                      $begingroup$

                      Since you mention the neural networks ...



                      Input weights in neural networks



                      Giving more weight to some inputs in a neural network could be easily done by multiplying the input with some weights you predefine.



                      Example in TF: (assuming inputs are arrays of numbers of size 3):



                      input = tf.placeholder(tf.float32, shape=(1, 3))
                      weights = tf.constant([2, 1, 3], dtype=tf.float32) # weights for input
                      weighted_input = tf.multiply(input, weights)
                      ... rest ot the network ...


                      But, as others already mentioned, you should be careful with playing with weighted inputs in machine learning algorithms, in this case neural network, since those things should be learned by the model.






                      share|improve this answer









                      $endgroup$


















                        0












                        $begingroup$

                        Since you mention the neural networks ...



                        Input weights in neural networks



                        Giving more weight to some inputs in a neural network could be easily done by multiplying the input with some weights you predefine.



                        Example in TF: (assuming inputs are arrays of numbers of size 3):



                        input = tf.placeholder(tf.float32, shape=(1, 3))
                        weights = tf.constant([2, 1, 3], dtype=tf.float32) # weights for input
                        weighted_input = tf.multiply(input, weights)
                        ... rest ot the network ...


                        But, as others already mentioned, you should be careful with playing with weighted inputs in machine learning algorithms, in this case neural network, since those things should be learned by the model.






                        share|improve this answer









                        $endgroup$
















                          0












                          0








                          0





                          $begingroup$

                          Since you mention the neural networks ...



                          Input weights in neural networks



                          Giving more weight to some inputs in a neural network could be easily done by multiplying the input with some weights you predefine.



                          Example in TF: (assuming inputs are arrays of numbers of size 3):



                          input = tf.placeholder(tf.float32, shape=(1, 3))
                          weights = tf.constant([2, 1, 3], dtype=tf.float32) # weights for input
                          weighted_input = tf.multiply(input, weights)
                          ... rest ot the network ...


                          But, as others already mentioned, you should be careful with playing with weighted inputs in machine learning algorithms, in this case neural network, since those things should be learned by the model.






                          share|improve this answer









                          $endgroup$



                          Since you mention the neural networks ...



                          Input weights in neural networks



                          Giving more weight to some inputs in a neural network could be easily done by multiplying the input with some weights you predefine.



                          Example in TF: (assuming inputs are arrays of numbers of size 3):



                          input = tf.placeholder(tf.float32, shape=(1, 3))
                          weights = tf.constant([2, 1, 3], dtype=tf.float32) # weights for input
                          weighted_input = tf.multiply(input, weights)
                          ... rest ot the network ...


                          But, as others already mentioned, you should be careful with playing with weighted inputs in machine learning algorithms, in this case neural network, since those things should be learned by the model.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 10 hours ago









                          Antonio JurićAntonio Jurić

                          551110




                          551110






















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










                              draft saved

                              draft discarded


















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













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












                              Abhigyan pandey 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%2f45947%2fwhich-classification-model-allows-user-to-choose-importance-of-data-inputs%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