SVMs assumes that the data it works with is in a standard range, usually either 0 to 1 or -1 to 1. So the normalization of feature vectors prior to feeding them to the SVM is very important.
The range of all features should be normalized to be from 0.0 to 1.0 before using SVM that assumes that the data is normally distributed. And it can reduce the time to find support vectors.
The RBF kernel is defined as k(x,y)=exp(-gamma*||x-y||^2).
- If the features are normalized: each dimension of the feature vector is treated equally, since every dimension contributes similarly to the euclidean norm ||x-y||^2 = sum_i (x_i-y_i)^2.
- If every feature has a different scale, the euclidean distance only take into account the features with highest scale.
Normalization is a technique often applied as part of data preparation for machine learning. The goal of normalization is to change the values of numeric columns in the dataset to a common scale, without distorting differences in the ranges of values. For machine learning, every dataset does not require normalization. It is required only when features have different ranges
Normalization is a good technique to use when you do not know the distribution of your data or when you know the distribution is not Gaussian (a bell curve). Normalization is useful when your data has varying scales and the algorithm you are using does not make assumptions about the distribution of your data, such as k-nearest neighbors and artificial neural networks