Выбор параметров SVM

У меня есть набор данных, который я использую для классификации с помощью libSVM в Matlab. Набор данных состоит из 4 классов.

Для выбора параметров SVM я могу выполнять вложенную перекрестную проверку. Проблема в том, что мне тоже нужно в итоге значение лучших параметров.

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

Как я могу это сделать? Должен ли я просто не выполнять вложенную перекрестную проверку, а только перебирать все параметры и выполнять перекрестную проверку?

Во-вторых, если я использую линейную SVM, то использование этого весового вектора w для присвоения важности функциям работает, но работает ли он также для нелинейной SVM (например, ядра rbf)?


person machinery    schedule 18.06.2015    source источник


Ответы (1)


Чтобы найти «лучшие» параметры для выбранного ядра, вы должны перебрать все параметры в цикле, чтобы выполнить так называемый «поиск по сетке». LIBSVM не поддерживает встроенный механизм поиска по сеткеn.

Что касается вашего второго вопроса, я бы предложил выполнить выбор функции (например, получение информации, взаимная информация, ...) в качестве этапа предварительной обработки перед фактической работой с SVM, а на втором этапе принять во внимание вектор веса s (но я не уверен, будет ли это работать с RBF или гаусианскими ядрами ...).

person rzo1    schedule 20.07.2015