When data has high dimension (think 1000+ to infinity features) a Support Vector Machine with the right settings (right kernel choice etc.) can be the way to go and produce really accurate results.
If you're a hands-on person who likes to learn and understand the intricacies of systems then you might actually enjoy the highly integrated kernel-world of Support Vector Machines.
Support Vector Machines are all about choosing the right kernel with the right parameters and this can provide lots of flexibility
and a potent toolset.
Linear kernels, non-linear kernels, polynomial kernels, RBF, sigmoid and gaussian kernels all have an edge in solving supervised machine learning problems with SVMs or SVRs.
Support Vector Machines may be relatively sluggish when it comes to training especially with large datasets, however, when it comes to prediction they are quite fast.
SVMs handle dataset as a whole at once and in this sense it's not an incremental approach. This means whole data is taken to RAM of a computer during training. Once it's done prediction becomes a breeze.
SVMs can be used to both classify data and also predict continuous numerical values. Regression variance of Support Vector Machines are usually called SVR (Support Vector Regression)
Holy Python is reader-supported. When you buy through links on our site, we may earn an affiliate commission.
Although random forests have numerous optimization parameters too it's not so easy to make huge mistakes with them, but when it comes to Support Vector Machines, correct parameters can define the line between misery and victory.
This makes Support Vector Machines difficult to implement sometimes.
Support Vector Machines don't have a scalable nature and they don't work that well with mid-size or large datasets.
SVMs are not the most efficient algorithms and it can be quite costly computationally to train them. (When applied with kernels and especially with non-linear kernels)
You can't just work on any problems with SVM Machine Learning Algorithms.
Dataset in hand will already need have feature vectors or you will need to pre-process to extract feature vectors which might not always be easy or possible.
Support Vector Machines don't provide very sophisticated and interpretable reports that can be interpreted in an easy fashion.
Lack of probability estimates also is another drawback of this machine learning algorithm.
Overfitting is another potential side effect of Support Vector Machines and it can be quite difficult to detect or fix at times.
This is not necessarily a con but something that comes with Support Vector Machines and creates additional tasks and maybe you'd rather not deal with extra data preparation techniques.
Scaling is an important fundamental step when working with SVMs otherwise features with higher nominal values will dominate the decision-making process while calculating the distance between the plane and support vectors.
This gotta be the biggest edge of Decision Trees. They just give easy, readable outputs.
Data prep is easy with Decision Trees on so many levels. (missing data is ok,no normalization, no scaling etc.)
Compared to some algorithms such as random forests, decision trees are a lighter alternative.
Decision Trees come with a learning curve especially if you want to get hands-on with them. There are lots of important parameters that can make a big difference.
Despite its edge on Random Forests, Decision Trees are computationally expensive in general.
Decision tree can be limited in its accuracy and tackling complex data.