1.09k likes | 2.8k Views
Support Vector Regression. Artur Akbarov. Paper. A tutorial on support vector regression By Smola, A.J and Schölkopf , B. Statistics and Computing, 14, pp . 199-222 , 200 4. Why SVM?.
E N D
Support Vector Regression ArturAkbarov
Paper A tutorial on support vector regression By Smola, A.J and Schölkopf, B. Statistics and Computing, 14, pp. 199-222, 2004
Why SVM? • SVM is applied in many different fields including bioinformatics, epidemiology, finance, economics etc. • Essentially, it can be applied wherever there is a problem of classification or prediction.
Formulation of SVR problem Source:http://www.saedsayad.com/support_vector_machine_reg.htm
Formulation of SVR problem Source:http://www.saedsayad.com/support_vector_machine_reg.htm
Non-linear SVR Source:http://www.saedsayad.com/support_vector_machine_reg.htm
Parameter estimation Linear SVR: Non-linear SVR:
Kernels • Gaussian radial basis function: • Polynomial
The solution of SVR • Model fitting: • Training set – fit the model • Validation set – predict using the fitted model, choose the model with minimum prediction error. • Model testing: • Test set – examine the prediction error (model performance, compare different prediction methods)
Splitting the data set • Training and validation sets: • Fixed split • Random split • Cross-validation • Split the data into n number of subsets, train on n-1 subsets, validate on the remaining subset, loop over all subsets. • Leave-one-out cross validation.
SVM library • LIBSVM – SVM library in different languages. • Weka – data mining tools. • R package - “e1071”
SVM in R • install.packages(“e1071”) • library(“e1071”) • model<-svm(data=D, formula=Y~X1+X2) • model<-svm(y=Y,x=X) • Y_fit<-predict(model, X) • Y_hat<-predict(model, X_new)
SVM in R • Other SVM parameters for the svm() function: • epsilon = 0.1 • cost = 1.0, which is C • kernel =“linear”, “polynomial”, “radial”, ”sigmoid”.
Tuning SVM parameters • best.svm() function uses grid search to find the optimal values for SVM parameters. • model<-best.svm(x=X, y=Y, tunecontrol=tune.control(cross=5), cost=c(1:10),epsilon=c(0.05,0.10))