Hacker News new | ask | show | jobs
by rm999 5002 days ago
I am not an expert in SVMs, but I consider myself fairly experienced in machine learning. In my professional experience the answer to your question is 'not quite'. SVMs have solved some problems very well, but I've had issues with them:

1. They are only for classification, not every problem is classification. The other big category is regression, for example predicting the sale price of a home rather than predicting a binary "will it sell"

2. They don't have a natural probabilistic interpretation for classification. Neural networks for classification (with a logistic activation function) are trained to predict a probability, not make a simple binary decision. In practice this probability is usually very useful, although I believe SVMs have been modified to give some kind of probability.

3. I have had a tough time getting them to run quickly. Linear kernel SVMs are fast, but aren't powerful. More complex kernels are more powerful but can be very slow on moderately large datasets.

2 comments

SVMs are very much used for regression as well:

http://scikit-learn.org/stable/modules/svm.html#regression

Note: the scikit-learn implementation of SVMs is based on libsvm:

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Interesting, a quick glance at a paper on SVRs indicate they kind of work in the opposite manner of a SVM - in an SVM you try to maximize the number of points far away from the separator (taking into account class), whereas in regression you are trying to minimize this.

Do you have much background using them? I'm curious how they perform on real-world tasks.

Yeah, there's the SVR "pipe" concept, where you attempt to fit the margin s.t. points are close to it. It's a great alternate use of SVM's obj. function optimization.

I haven't really used SVRs aside from some exploratory work, so I can't speak too much about them. But I know they exist!

for 1. you can definitely modify an SVM to be used for regression, as far as I know most standard SVM libraries have support for regression, and I have personally used them very successfully for this task. [0]

2. There are actually ways you can modify the output of an SVM to give a probabilistic interpretation[1]. But I'll agree with the not having a 'natural' probabilistic interpretation.

3. Is definitely correct, but I'm not sure NNs are that much better.

[0] http://www.svms.org/regression/

[1] http://www.cs.colorado.edu/~mozer/Teaching/syllabi/6622/pape...