Как определить оптимальные параметры C / Gamma в libsvm?
Я использую libsvm для многоклассовой классификации наборов данных с большим количеством признаков/атрибутов (около 5800 на каждый элемент). Я хотел бы выбрать лучшие параметры для C и Gamma, чем значения по умолчанию, которые я использую в настоящее время.
Я уже пробовал бегать. easy.py, но для наборов данных, которые я использую, расчетное время близко к вечности (ran easy.py в 20, 50, 100 и 200 выборках данных и получил суперлинейную регрессию, которая спроецировала мое необходимое время выполнения, чтобы взять годы).
Есть ли способ быстрее получить лучшие значения C и Gamma, чем значения по умолчанию? Я использую библиотеки Java, если это имеет какое-то значение.
1 ответ:
Это можно сделать без поиска по сетке, как я полагаю, делает
easy.py
.Посмотрите на эту статью из Trevor Hastie, et al: весь путь регуляризации для машины опорных векторов (PDF). Один "запуск SVM" вычислит потери для всех значений "C" в одном кадре, так что вы можете увидеть, как это влияет на производительность SVM.
У них есть реализация этого алгоритма, которую можно использовать в R через пакет svmpath.
Я верю ядро алгоритма записано на Фортране, но завернуто в R.