Support Vector Regression (SVR) in Python

Setup using the Regression Template.

FEATURE SCALING is not done by SVR class so make sure to do it.

#Applying feature scaling with no X/y train/ test
sc_X = StandardScalar()
sc_y = StandardScalar()
X = sc_X.fit_transform(X)
Y = sc_y.fit_transform(y)


Create Regressor

Import the SVR class from Scikit learn library Create the object for SVR class Arguments of SVR() class:

kernel: Choose between linear, polynomial, sigmoid or rbf kernal rbf: Gaussian Kernel. Most popular for nonlinear regressions

from sklearn.svm import SVR
regressor = SVR(kernel='rbf')
regressor.fit(X,y)


Predicting the value. We can either input an array like X_test or a single value like 6.5 (that needs to be converted into an array) into our predict() method.

Since however the value ‘6.5’ is not feature scaled we will need to do that. this can be done with sc_X.transform(6.5). To convert 6.5 into an a array just do : np.arra([[6.5]]) However now that we feature scaled we would get the wrong value as a prediction. This is because 6.5 will be converted into a value like 0.303 and we would predict that value. To fix this problem we apply the inverse_transform method.

y_pred = sc_y.inverse_transform(regressor.predict(sc_X.transform(np.array([[6.5]]))))