Поиск оптимального набора функций может быть довольно дорогим в вычислительном отношении. Основные категории доступных решений могут быть сгруппированы в два набора: либо привязка к определенному классификатору (обертки), либо простое ранжирование объектов на основе некоторого критерия (методы фильтра).
Исходя из ваших требований (быстрый / непараметрический / нелинейный), вероятно, вам нужны кандидаты из методов фильтра. Есть немало примеров описанных в литературе . Например, Information Gain - оценивает ценность атрибута путем измерения прироста информации по отношению к классу; или Корреляция, которая оценивает ценность атрибута на основе корреляции между атрибутом и классом.
Методы-обертки привязываются к классификатору и могут в конечном итоге обеспечить лучший набор функций для интересующего классификатора. Из-за их характера (полное обучение / тестирование в каждой итерации) их нельзя считать быстрыми или непараметрическими, однако они могут иметь дело с нелинейными отношениями функций (ваше 3-е требование). Примером может служить Рекурсивное исключение признаков, основанное на SVM, которое, таким образом, нацелено на максимизацию разрыва между классами и может иметь дело с нелинейными отношениями признаков (с использованием нелинейного ядра).