support sklearn scikit regressor org machine learn classifier python svm sparse-matrix scikit-learn

python - scikit - ¿Cómo acelerar SKlearn SVR?



svm kernel (1)

Estoy implementando SVR usando el paquete sklearn svr en python. Mi matriz dispersa es de tamaño 146860 x 10202. La he dividido en varias submatrices de tamaño 2500 x 10202. Para cada matriz secundaria, el ajuste de SVR tarda unos 10 minutos. ¿Cuáles podrían ser las formas de acelerar el proceso? Sugiera cualquier enfoque diferente o paquete de Python diferente para el mismo. ¡Gracias!


Puede promediar las predicciones de submodelos SVR.

Alternativamente, puede tratar de ajustar un modelo de regresión lineal en la salida de la expansión del núcleo calculada con el método Nystroem .

O puede probar otros modelos de regresión no lineal como el conjunto de árboles aleatorios o árboles de regresión potenciados por gradiente.

Editar : Olvidé decir: el modelo SVR del kernel en sí mismo no es escalable ya que su complejidad es más que cuadrática, por lo tanto, no hay forma de "acelerarlo".

Edición 2 : en realidad, a menudo escalar las variables de entrada a [0, 1] o [-1, 1] o a la varianza de la unidad con StandardScaler puede acelerar la convergencia en bastante.

Además, es muy poco probable que los parámetros predeterminados arrojen buenos resultados: debe buscar en cuadrícula el valor óptimo para gamma y quizás también epsilon en submuestras de tamaños crecientes (para verificar la estabilidad de los parámetros óptimos) antes de ajustarlo a modelos grandes .