Во-первых, согласно тесту scikit-learn ( здесь ), scikit-learn уже является одним из самых быстрых, если не самых быстрых пакетов SVM. Следовательно, вы можете рассмотреть другие способы ускорения обучения.
Как предполагает bavaza, вы можете попробовать многопоточность процесса обучения. Если вы используете класс Scridit-learn GridSearchCV, вы можете легко установить аргумент n_jobs больше значения по умолчанию, равного 1, чтобы выполнять обучение параллельно за счет использования большего количества памяти.
Вы можете найти его документацию здесь Пример использования класса можно найти здесь
Кроме того, вы можете взглянуть на библиотеку машинного обучения Shogun.
здесь
Shogun предназначен для крупномасштабного машинного обучения с оболочками для многих распространенных svm-пакетов и реализован на C / C ++ с привязками для python. Согласно приведенному выше тесту Scikit-learn, его скорость сопоставима с Scikit-learn. На других задачах (кроме тех, которые они демонстрировали), это может быть быстрее, поэтому стоит попробовать.
Наконец, вы можете попытаться выполнить уменьшение размера, например, используя PCA или рандомизированный PCA, чтобы уменьшить размерность ваших векторов признаков. Это ускорит процесс обучения. Документацию по соответствующим классам можно найти по следующим 2 ссылкам: PCA , Randomized PCA . Вы можете найти примеры их использования в разделе примеров Scikit-learn.