Оптимизация SMO с RBFKernel (C и гамма) в Weka - PullRequest
0 голосов
/ 01 декабря 2011

Я пытаюсь обучить набор ~ 30 000 экземпляров, используя классификатор SMO с RBFKernel в Weka. Я использую сетку поиска, чтобы найти оптимальные значения для параметров C и гамма. Вот моя конфигурация:

weka.classifiers.meta.GridSearch -E ACC -y-property classifier.kernel.gamma -y-min -10.0 -y-max 5.0 -y-step 1.0 -y-base 10.0 -y-expression pow(BASE,I) -filter weka.filters.AllFilter -x-property classifier.c -x-min 5.0 -x-max 20.0 -x-step 1.0 -x-base 10.0 -x-expression I -sample-size 100.0 -traversal COLUMN-WISE -num-slots 1 -S 1 -W weka.classifiers.functions.SMO -- -C 1.0 -L 0.0010 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -C 250007 -G 0.01"

Я позволил ему работать в течение> 9 часов безрезультатно, сообщение о статусе Weka остается как «Построение модели на данных обучения ...». Сначала я думал, что поиск по сетке был проблемой, но когда я попытался тренироваться, используя значения по умолчанию для C и гамма без выполнения поиска по сетке, я получил тот же результат. Вместо этого я попытался использовать PolyKernel, и классификатор был обучен за пару секунд (но не в поиске по сетке).

Как мне заставить RBFKernel работать (используя значения по умолчанию и при поиске по сетке)?

Ответы [ 2 ]

1 голос
/ 20 января 2012

Вот что у меня сработало:

  • Использование логарифмических шагов XExpression = pow(BASE,I), XMin = -5, XMax = 5, XStep = 1 и XBase = 10 (то же самое для Y).
  • Использование фильтра Для своих целей я использовал DistributionBasedBalance фильтр с p, установленным на какое-то значение.
  • Увеличение количества слотов исполнения Я установил numExecutionSlots на 4 (количество ядер в моей машине).
1 голос
/ 06 декабря 2011

Вы предварительно обрабатываете данные тренировки?Это очень важно для ядра RBF.Вы можете попытаться нормализовать функции до [-1,1] и снова попробовать ядро ​​RBF.

...