2010-05-03 1 views
2

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

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

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

ответ

3

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

Посмотрите на эту статью от Trevor Hastie и др.: The Entire Regularization Path for the Support Vector Machine (PDF). Один «запуск SVM» рассчитает потерю для всех значений «С» одним выстрелом, поэтому вы можете увидеть, как это влияет на производительность SVM.

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

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