Может быть, это поможет:
Существует два способа выбора признаков в классификации:
- Использование fselect.py из директории инструментов libsvm (http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#feature_selection_tool)
- Использование sequentialfs из панели инструментов статистики.
Я бы порекомендовал использовать fselect.py, поскольку он предоставляет больше опций - например, автоматический поиск по сетке для оптимальных параметров (с использованием grid.py). Он также предоставляет F-показатель, основанный на способности распознавания функций (см. http://www.csie.ntu.edu.tw/~cjlin/papers/features.pdf для получения подробной информации о F-значении).
Поскольку fselect.py написан на python, вы можете использовать интерфейс python или, как я предпочитаю, использовать matlab для выполнения системного вызова python:
system('python fselect.py <training file name>')
Важно, чтобы у вас был установлен python, скомпилирован libsvm (и вы находитесь в каталоге инструментов libsvm, в котором есть grid.py и другие файлы).
Необходимо иметь обучающий файл в формате libsvm (разреженный формат). Вы можете сделать это с помощью разреженной функции в Matlab, а затем libsvmwrite.
xtrain_sparse = sparse(xtrain)
libsvmwrite('filename.txt',ytrain,xtrain_sparse)
Надеюсь, это поможет.
Для последовательных файлов с libsvm вы можете увидеть это сообщение:
Выбор функций с помощью последовательных функций с помощью libsvm