A Support Vector Machine (SVM) is a discriminative classifier formally defined by a separating hyper-plane. In other words, given labelled training data (supervised learning), the algorithm outputs an optimal hyper-plane which categorises new examples.
An SVM model is a representation of the examples as points in space, mapped so that the examples of the separate categories are divided by a clear gap that is as wide as possible. New examples are then mapped into that same space and predicted to belong to a category based on which side of the gap they fall.
In addition to performing linear classification, SVMs can efficiently perform a non-linear classification using what is called the kernel trick, implicitly mapping their inputs into high-dimensional feature spaces.
When data are not labelled, supervised learning is not possible, and an unsupervised learning approach is required, which attempts to find natural clustering of the data to groups, and then map new data to these formed groups. The clustering algorithm which provides an improvement to the support vector machines is called support vector clustering and is often used in industrial applications either when data are not labelled or when only some data are labelled as a preprocessing for a classification pass.
SVM can do some amazing predictions , for example when you use tune function specify a range of cost and epsilon values. The tune function automatically picks up the best SVM model for us with the least possible error.
Support vector machine algorithms can be very computational intensive and in our case the are with the large number of data rows. It took my machine 10 hours to process the model completely.