which classification model allows user to choose importance of data inputs?
$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.
machine-learning python neural-network classification r
New contributor
$endgroup$
add a comment |
$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.
machine-learning python neural-network classification r
New contributor
$endgroup$
add a comment |
$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.
machine-learning python neural-network classification r
New contributor
$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
machine-learning python neural-network classification r
New contributor
New contributor
New contributor
asked yesterday
Abhigyan pandeyAbhigyan pandey
111
111
New contributor
New contributor
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
$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.
New contributor
$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
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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.
New contributor
$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
add a comment |
$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.
New contributor
$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
add a comment |
$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.
New contributor
$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.
New contributor
edited yesterday
New contributor
answered yesterday
yatuyatu
1214
1214
New contributor
New contributor
$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
add a comment |
$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
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered yesterday
bonez001bonez001
364
364
add a comment |
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 10 hours ago
Antonio JurićAntonio Jurić
551110
551110
add a comment |
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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