Как определить оптимальные параметры C / Gamma в libsvm?


Я использую libsvm для многоклассовой классификации наборов данных с большим количеством признаков/атрибутов (около 5800 на каждый элемент). Я хотел бы выбрать лучшие параметры для C и Gamma, чем значения по умолчанию, которые я использую в настоящее время.

Я уже пробовал бегать. easy.py, но для наборов данных, которые я использую, расчетное время близко к вечности (ran easy.py в 20, 50, 100 и 200 выборках данных и получил суперлинейную регрессию, которая спроецировала мое необходимое время выполнения, чтобы взять годы).

Есть ли способ быстрее получить лучшие значения C и Gamma, чем значения по умолчанию? Я использую библиотеки Java, если это имеет какое-то значение.

1 2

1 ответ:

Это можно сделать без поиска по сетке, как я полагаю, делает easy.py.

Посмотрите на эту статью из Trevor Hastie, et al: весь путь регуляризации для машины опорных векторов (PDF). Один "запуск SVM" вычислит потери для всех значений "C" в одном кадре, так что вы можете увидеть, как это влияет на производительность SVM.

У них есть реализация этого алгоритма, которую можно использовать в R через пакет svmpath.

Я верю ядро алгоритма записано на Фортране, но завернуто в R.