Construção de recursos em R

8

Eu estou querendo saber se existem algoritmos (talvez algoritmos genéticos) em R para construção de recursos (derivados de preditores candidatos de preditores existentes)? Estou pensando em uma rotina para testar potências, interações, proporções e combinações lineares de ordem superior e funções não lineares de variáveis ​​existentes (sin, cos, atan etc.).

Pode ser uma rotina de filtro ou invólucro (ou seja, não usar um algoritmo de aprendizado ou um para definir a adequação do recurso).

Meu objetivo é "descobrir" proporções potencialmente significativas e similares dos preditores existentes.

Obrigado!

B_Miner
fonte
Você já experimentou o pacote "Oblique.tree"? cran.r-project.org/web/packages/oblique.tree/index.html best

Respostas:

3

Parece-me que isso o deixaria altamente vulnerável a problemas como correlação espúria e até superajustamento. Esqueço o nome do princípio que afirma que quanto mais modelos você tenta, maior o risco de se deparar com um modelo ruim - se você tentar tantos modelos para realmente executar um algoritmo genético, poderá imaginar como esse princípio é violado.

William
fonte
1
Acho que o OP está falando em usar um algoritmo genético para extrair ou projetar recursos, não para encontrar modelos.
Aman
2

Você poderia fazer o seguinte: a partir de um data.frame, você adiciona um conjunto 'razoável' de preditores transformados ou até interações aos seus dados (model.matrix e similares devem ser capazes de fazer isso).

Uma vez lá, qualquer método de seleção de variáveis ​​pode funcionar. glmnetvem à mente, mas há muitas opções. Uma desvantagem dessa maneira de trabalhar é que será difícil garantir que o principal efeito esteja no modelo quando houver uma interação. Talvez algumas formas de seleção de variáveis ​​apóiam isso, mas não conheço outras que sejam óbvias além dos procedimentos passo a passo (que desafiariam o propósito).

Nick Sabbe
fonte
1

Você pode começar com algo simples, como encontrar componentes principais ou componentes independentes . Você também pode ficar um pouco louco e gerar todas as interações bidirecionais de suas variáveis. Obviamente, à medida que você gera e testa mais recursos, você precisa de um algoritmo de seleção de recursos que seja mais robusto contra o ajuste excessivo.

Alguns algoritmos de modelagem, como MARS , florestas aleatórias e SVMs não lineares, encontram automaticamente determinadas interações entre seus recursos originais.

Zach
fonte
1
(+1) Parece-me que o problema com RFs ou SVMs (e, geralmente, com qualquer método de conjunto) é que essas interações raramente são interpretáveis ​​de maneira direta. Algumas variações em torno do empacotamento que permitem executar a seleção de recursos em tipos específicos de preditores foram propostas, consulte, por exemplo, o pacote logicFS .
chl