support sklearn scikit rbf poly linearsvc learning learn python svm scikit-learn

python - sklearn - svm kernel scikit learn



Extraño rendimiento de predicción de SVM en scikit-learn(SVMLIB) (1)

Estoy usando SVC de scikit-learn en un gran conjunto de datos de 10000x1000 (10000 objetos con 1000 características). Ya he visto en otras fuentes que SVMLIB no escala mucho más allá de ~ 10000 objetos y de hecho observo esto:

training time for 10000 objects: 18.9s training time for 12000 objects: 44.2s training time for 14000 objects: 92.7s

Puedes imaginar lo que sucede cuando intento 80000. Sin embargo, lo que me parece muy sorprendente es el hecho de que el SVM predice () lleva incluso más tiempo que el ajuste de entrenamiento ():

prediction time for 10000 objects (model was also trained on those objects): 49.0s prediction time for 12000 objects (model was also trained on those objects): 91.5s prediction time for 14000 objects (model was also trained on those objects): 141.84s

Es trivial hacer que la predicción se ejecute en tiempo lineal (aunque puede ser casi lineal aquí), y por lo general es mucho más rápido que el entrenamiento. Entonces, ¿qué está pasando aquí?


¿Estás seguro de que no incluyes el tiempo de entrenamiento en tu medida del tiempo de predicción? ¿Tienes un fragmento de código para tus tiempos?