Я использую SVC из scikit-learn на большом наборе данных 10000x1000 (10000 объектов с 1000 функциями). Я уже видел в других источниках, которые SVMLIB не масштабируются за ~ 10000 объектов, и я действительно наблюдать это:Weird SVM performance performance in scikit-learn (SVMLIB)
training time for 10000 objects: 18.9s
training time for 12000 objects: 44.2s
training time for 14000 objects: 92.7s
Вы можете себе представить, что происходит, когда я пытаюсь 80000. Тем не менее, то, что я нашел очень удивителен Дело в том, что SVM предсказывают() занимает еще больше времени, чем обучение запрессовки():
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
это тривиально, чтобы получить прогноз для работы в линейном времени (хотя это может быть близка к линейной здесь), и обычно это намного быстрее, чем обучение. и так, что здесь происходит?
Вы делаете прогнозы в партиях? Метод «SVC.predict», к сожалению, несет много накладных расходов, поскольку он должен восстановить структуру данных LibSVM, аналогичную той, которую подготовил алгоритм обучения, мелкой копии в векторах поддержки и преобразовать тестовые образцы в LibSVM формат, который может отличаться от форматов NumPy/SciPy. Поэтому прогнозирование на одном образце должно быть медленным. –