1
$\begingroup$

I'm trying to program an SVM in Python to categorize proteins as "Go" or "No-Go".

I have a list of about 30 proteins, each with ~ 100 columns of structure-related parameters and 1 column of "True" or "False". I will use this as my training set.

I don't want to write an SVM that uses all 100 columns of data. How do I identify which of the columns impact the output? Things I've looked at, albeit briefly:

correlation, linear regression, multiple regression, nonparametric regression

..but all of these seem overly complicated because they're intended to predict non-discrete dependent values (e.g. average height or dollar-cost) instead of a binary result (True | False).

Although I appreciate any guidance, I'm really just looking for the correct vocabulary so that I can research my problem without flailing in the dark.

Thank you~

$\endgroup$
  • 1
    $\begingroup$ I wonder if the SVM aspect isn't irrelevant here. It sounds like you just want to know which subset of variables out of a total of about 100 are relevant for determining whether a protein is a "Go" or a "No-Go". Is that about the whole of it? If so, you are interested in feature-selection. $\endgroup$ – gung - Reinstate Monica May 18 '13 at 21:52
1
$\begingroup$

In the machine learning world, this is called a supervised learning problem. Each of the 100 columns are called "features" which may or may not have any predictive value for the outcome. Our goal in supervised learning can be to select the smallest combination of features to create the highest amount of discrimination in the binary outcome as possible, so you get predictions that have a nice spread and easily create a decision rule where the classification accuracy is very high.

There are many approaches to feature selection, SVM is one of them. There is also random forests and GLM lasso to consider. Whether a method predicts a continuous outcome or not is irrelevant because you can select a threshold to define a classification rule. In fact, iterating over the range of all possible thresholds can produce a range of specificity / sensitivity for your prediction rule. Plotting these against one another produces an ROC curve which is used to evaluate the recall of binary marker prediction rules.

$\endgroup$
  • $\begingroup$ I think you said: 'SVM does this inherently.' That's a pretty easy answer for me, thanks! I need to spend more time understanding SVM... $\endgroup$ – Edwin199 May 18 '13 at 18:04
  • 1
    $\begingroup$ Standard SVM does not perform feature selection inherently. The solution of SVM training is sparse in terms of the training instances, e.g. proteins, not their attributes. You can consider L1-regularized linear SVM for feature selection. $\endgroup$ – Marc Claesen May 19 '13 at 20:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.