Pessoalmente, gosto de dividir a seleção de recursos em dois:
- seleção de recursos não supervisionados
- seleção de recursos supervisionados
A seleção de recursos não supervisionados são coisas como clustering ou PCA em que você seleciona o intervalo de recursos menos redundante (ou cria recursos com pouca redundância). A seleção supervisionada de recursos é como Lasso, na qual você seleciona os recursos com maior poder preditivo.
Pessoalmente, prefiro o que chamo de seleção supervisionada de recursos. Portanto, ao usar uma regressão linear, selecionaria recursos com base no Lasso. Existem métodos semelhantes para induzir escassez em redes neurais.
Mas, na verdade, eu não vejo como eu faria isso em um método usando kernels, então você provavelmente está melhor usando o que eu chamo de seleção de recursos não supervisionados.
EDIT: você também perguntou sobre regularização. Vejo a regularização como ajudando principalmente porque trabalhamos com amostras finitas e, portanto, a distribuição de treinamento e teste sempre será um pouco diferente, e você deseja que seu modelo não se ajuste demais. Não sei se isso elimina a necessidade de evitar a seleção de recursos (se você realmente tiver muitos). Penso que a seleção de recursos (ou a criação de um subconjunto menor deles) ajuda a tornar os recursos mais robustos e a evitar o modelo de aprender com correlações espúrias. Portanto, a regularização ajuda, mas não tenho certeza de que é uma alternativa completa. Mas ainda não pensei o suficiente sobre isso.