Лучшие гиперпараметры из GridSearch дают инвертированные результаты по сравнению с фактическими результатами прогнозирования SMOreg - PullRequest
1 голос
/ 12 апреля 2020

Я новичок в машинном обучении, и у меня есть вопрос относительно результатов поиска по сетке, чтобы найти лучшие гиперпараметры C и гаммы для SMOreg.

Я выполняю поиск по сетке, чтобы найти лучший C и гамма, которая даст мне самую высокую корреляцию. Я использую GridSearch, как показано ниже:

weka.classifiers.meta.GridSearch -E CC -y-свойство kernel.gamma -y-min -3.0 -y-max 3.0 -y- step 1.0 -y-base 10.0 -y-выражение pow (BASE, I) -x-свойство C -x-min -3.0 -x-max 3.0 -x step 1.0 -x-base 10.0 -x-выражение pow (BASE, I) -Sample-size 100.0 -ROW-WISE -log-file "D: \ Program Files \ Weka-3-9-4" -num-slots 1 -S 1 -W weka.classifiers.functions. SMOreg - - C 1,0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -T 0,001 -V -P 1.0E-12 -L 0,001 -W 1" -K "weka.classifiers.functions. supportVector.RBFKernel - C 250007 -G 0,01 "

Как показано выше, я установил оценку в CC (коэффициент корреляции), XProperty в C и YProperty в kernel.gamma с параметрами C и гаммой в диапазоне от 10 ^ -3,10 ^ -2,10 ^ -1,1,10,100 и 1000. Следует отметить, что я использую SMOreg в качестве базового классификатора и RBFKernel в качестве функция ядра. Кроме того, я установил метрики оценки в Correlation, MAE, RMSE и MAPE.

Вывод гиперпараметра GridSearch показан ниже:

weka.classifiers.meta.GridSearch: Классификатор: weka.classifiers.functions.SMOreg - C 1.0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -T 0,001 -V -P 1.0E-12 -L 0,001 -W 1" -K " weka.classifiers.functions.supportVector.RBFKernel - C 250007 -G 10,0 "

X свойство: C

Y свойство : kernel.gamma

Оценка: коэффициент корреляции

Координаты: [0,0, 1,0]

Значения: 1,0 (координата X), 10,0 (координата Y)

Смысл этого результата в том, что наилучшее значение для C равно 1, а лучшая гамма равна 10

В конце результата GridSearch отображаются следующие сводные данные:

=== Сводка ===

Коэффициент корреляции 0,945

средняя абсолютная ошибка в процентах 0,1434

средняя абсолютная ошибка 3,8465

Root средняя квадратическая ошибка 5.5417

Общее количество экземпляров 309

Это означает, что при использовании C = 1 и гамма = 10 соответственно результат прогнозирования должен быть одним показано в сводке выше.

Однако, когда я выполняю SMOreg с тем же набором данных, используя лучшие параметры, полученные из GridSearch (C = 1 и gamma = 10), я получаю разные результаты, как показано ниже:

Классификатор:

weka.classifiers.functions.SMOreg - C 1.0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -T 0,001 -V -P 1.0E-12 -L 0.001 -W 1 "-K" weka.classifiers.functions.supportVector.RBFKernel - C 250007 -G 10.0 "

Выход:

=== Сводная информация ===

Коэффициент корреляции 0,9417

Средний абсолютный процент ошибка 0,1381

средняя абсолютная ошибка 3,7672

Root средняя квадратическая ошибка 5,7114

всего Количество экземпляров 309

Забавно, что если я инвертирую лучший результат гиперпараметров (C = 10, гамма = 1), я получу результат, совершенно аналогичный результату прогноза GridSearch:

Классификатор:

weka.classifiers.functions.SMOreg - C 10.0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -T 0.001 -V -P 1.0E -12 -L 0. 001 -W 1 "-K" weka.classifiers.functions.supportVector.RBFKernel - C 250007 -G 1.0 "

Выход:

=== Резюме ===

Коэффициент корреляции 0,945

Средняя абсолютная процентная ошибка 0,1434

Среднее абсолютное ошибка 3,8465

Root средняя квадратическая ошибка 5,5417

общее количество экземпляров 309

Кто-нибудь знает почему это происходит?

Еще одна вещь: в GridSearch максимальное пространство поиска для C и гаммы равно 1000. Однако я попытался использовать C = 100 и gamma = 1, и это дало лучше / более высокий коэффициент корреляции по сравнению с лучшими гиперпараметрами согласно GridSearch, который равен C = 1 и гамме = 10. Почему GridSearch не дал наилучших результатов?

Спасибо.

...