Невозможно использовать SVM с ядром RBF - DataScientist
0 голосов
/ 19 февраля

Я новичок в R. У меня есть оригинальный набор данных с 25771 переменными и 118 выборками. Я уже выполнил выбор функции и разделил набор данных на 70 30, так что у меня 82 образца в моих данных обучения и 36 в моих данных тестирования. Затем я выполнил SMOTE-ресэмплинг только для своих тренировочных данных и получил новый набор данных с 25771 функциями и 144 выборками. При использовании вывода лучших объектов из результата выбора объектов с переменным числом r функций, таких как 10,20,30 до 100, выполняется пакет classif ier для выполнения SVM. Я уже выполнил SVM, используя linea r и полиномиальное ядро, а затем вычислил точность. Я получил 91,57% для r SVM Linea r с использованием 100 функций и 75% для r SVM с полиномиальным ядром. Но почему это не работает с ядром RBF? Я получаю только 20% точности, используя ядро ​​RBF. Что мне делать дальше, чтобы повысить точность SVM с использованием ядра RBF?

1 Ответ

1 голос
/ 19 февраля

Я думаю, что есть две вещи, с которыми вам следует быть осторожными: одна - переоснащение, а другая - r - настройка ядра RBF. Более конкретно:

Ядро RBF (обычно) имеет один свободный параметр r, часто называемый пропускной способностью. В orde r, чтобы получить хорошую производительность, этот параметр r должен быть настроен. Как правило, кто-то пробует (большую) сетку значений-кандидатов для r этого параметра r, а затем выбирает наиболее эффективное значение.

Теперь, что означает лучшее выполнение? Один из возможных способов решения этой проблемы заключается в следующем. Учитывая, что у вас очень мало образцов по отношению к числу r функций, вы r классификация ier могут быть склонны к переоснащению. Хотя разделение данных на обучение и тестирование является хорошей идеей (это часто называют методом «удержания»), вам может понадобиться дополнительный набор для проверки. В этой настройке роль обучающего набора состоит в том, чтобы доставить r обученного классификатора; роль валидационного набора заключается в оценке эффективности обученного классификатора ier. Теперь для r каждого значения из вас r сетки значений полосы-кандидата вы должны:

  1. обучить классификатор ier на обучающем наборе и затем оценить производительность с использованием набора проверки.

  2. После того, как вы сделали это для r всех возможных значений пропускной способности, как указано сеткой, вы выбираете значение пропускной способности, которое дало вам наилучшую производительность (например, самая низкая классификация erro r) в наборе проверки.

  3. Теперь вы в последний раз тренируете класс ier как на обучающем, так и на проверочном наборе.

  4. Вы оцениваете производительность вашего r обученного класса ier на еще не тронутом тестовом наборе.

Некоторые люди советуют, что весь процесс описанное выше повторяется многократно, каждый раз с новым случайным разделением данных на набор для обучения, проверки и тестирования. Я избегал назначать крысам ios fo r эти три набора, так как у меня нет ощущения, что вы могли бы подойти в такой обстановке с очень небольшим количеством образцов.

Я ссылаюсь r на некоторые лекционные заметки, которые я лично нашел полезными: http://research.cs.tamu.edu/prism/lectures/iss/iss_l13.pdf

Я дополнительно ссылаюсь r на следующее руководство, снабженное отличным программным обеспечением LIBSVM, где обсуждается настройка ядра RBF unde r раздел 3.1: https://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

...