libSVM вычисляет p -значения для контрольных точек на основе достоверности классификатора (т. Е. Как далеко находится контрольная точка от границы решения и насколько широки поля).
Я думаю, вы должны рассматривать определение важности функций как отдельную проблему от обучения ваших SVM.Существует тонн подходов для «выбора функций» (просто откройте любой учебник), но одним простым для понимания, простым подходом будет простая перекрестная проверка следующим образом:
- Разделите ваш набор данных на k сгибов (например, k = 10 обычно)
- Для каждой из k сгибов:
- Разделите ваши данные на обучающие / тестовые наборы (текущий сгиб - тестовый набор, остальные - тренировочный набор)
- Тренируйте ваш SVM-классификатор, используя только n -1 вашего n функции
- Измерение производительности прогнозирования
- Средняя производительность вашего n -1 классификатора функций для всех k тестовые сгибы
- Повторите 1-3 для всех оставшихся функций
Вы также можете сделать обратное, где вы тестируете каждую из n функций отдельноно вы, скорее всего, упустите важные взаимодействия второго и высшего порядка между функциями.
IВ целом, однако, SVM способны игнорировать нерелевантные функции.
Вы также можете попытаться визуализировать свои данные с помощью анализа основных компонентов, чтобы понять, как эти данные распределяются.