Encontrar um conjunto de recursos ideal pode ser bastante computacionalmente caro. As principais categorias de soluções disponíveis podem ser agrupadas em dois conjuntos: vincular a um classificador específico (Wrappers) ou simples classificação de recursos com base em algum critério (métodos de filtro).
Com base em seus requisitos (rápido / não paramétrico / não linear), provavelmente você precisa de candidatos dos métodos Filter. Existem alguns exemplos daqueles descritos na literatura . Por exemplo, ganho de informação - que avalia o valor de um atributo medindo o ganho de informações em relação à classe; ou Correlação que avalia o valor de um atributo com base na correlação entre o atributo e a classe.
Os métodos do wrapper são vinculados a um classificador e podem ter um conjunto melhor de recursos para o classificador de interesse. Devido à sua natureza (treinamento / teste completo em cada iteração), eles não podem ser considerados rápidos ou não paramétricos, no entanto, podem lidar com relações não lineares de recursos (seu terceiro requisito). Um exemplo seria a eliminação recursiva de recursos, baseada em SVMs, que visa maximizar a margem entre as classes e pode lidar com relações não lineares de recursos (usando um kernel não linear).