How to speed up SVL?

I am implementing SVR using sklearn svr package in python. My sparse matrix has a size of 146860 x 10202. I divided it into various 2500 x 10202 submatrices. For each auxiliary matrix, the SVR installation takes about 10 minutes. What can be ways to speed up the process? Please suggest any other approach or other python package for this. Thanks!

+4
source share
1 answer

You can average the predictions of the SVR submodules.

Alternatively, you can try to install a linear regression model at the output of a kernel extension calculated using the Nystroem method .

Or you can try other non-linear regression models, such as an ensemble of randomized trees or gradient regression trees.

Change I forgot to say: the SVR core model itself does not scale, because its complexity is more quadratic, so there is no way to "speed it up".

Change 2 . In fact, frequent scaling of input variables to [0, 1] or [-1, 1] or dispersion of units using StandardScaler can significantly accelerate convergence.

It is also very unlikely that the default parameters will yield good results: you need to find the optimal value for gamma and possibly also epsilon on sub-samples of expandable sizes (to check the stability of the optimal parameters) before installing on large models.

+6
source

All Articles