Оптимизация SMO с RBFKernel (C и гамма) - PullRequest
4 голосов
/ 10 марта 2010

При использовании ядер RBF с машинами опорных векторов есть два параметра: C и γ. Заранее неизвестно, какие C и γ являются лучшими для одной задачи; следовательно, необходимо сделать выбор модели (поиск параметров). Цель состоит в том, чтобы идентифицировать хорошее (C; γ), чтобы классификатор мог точно предсказать неизвестные данные (то есть данные тестирования).

weka.classifiers.meta.GridSearch - метаклассификатор для настройки пары параметров. Однако, кажется, что для завершения требуются целые годы (когда набор данных довольно большой). Что бы вы предложили сделать, чтобы сократить время, необходимое для выполнения этой задачи?

Согласно Руководству пользователя по поддержке векторных машин :

C: константа мягкого поля. Меньшее значение C позволяет игнорировать точки, близкие к границе, и увеличивает запас.

γ> 0 - это параметр, который управляет шириной гауссианы

1 Ответ

3 голосов
/ 11 марта 2010

Hastie et al. SVMPath исследует весь путь регуляризации для C и требует примерно одинаковых вычислительных затрат на обучение одной модели SVM. Из их бумаги:

Наша R-функция SvmPath вычисляет все 632 шага в примере смеси (n + = n− = 100, радиальное ядро, γ = 1) за 1,44 (0,02) секунды на машине linux с процессором Pentium 4, 2 ГГц; свм функция (с использованием оптимизированного кода libsvm из библиотеки R e1071) занимает 9,28 (0,06) секунд, чтобы вычислить решение в 10 точках вдоль пути. Отсюда и наша процедура примерно на 50% больше времени для вычисления всего пути, чем для вычисления типичного libsvm единое решение.

Они выпустили реализацию алгоритма в R под GPL, которую можно скачать с CRAN здесь .

Использование SVMPath должно позволить вам быстро найти хорошее значение C для любого заданного γ. Тем не менее, вам все равно придется выполнять отдельные тренировки для разных значений γ. Но это должно быть намного быстрее , чем выполнение отдельных прогонов для каждой пары значений C: γ.

...