Qual algoritmo de ML pode aprender efeitos de interação não linear?
No meu problema de regressão, tenho as colunas de entrada numérica "A", "B" e "C" e a meta numérica "Alvo".
A relação é: Quanto mais alto "C", mais impacto terá "B" - quanto mais baixo "C" maior será o impacto "A" para prever o "Alvo". Agora, essa relação é não linear, mas mais quadrática.
Quais modelos de regressão são teoricamente capazes de aprender esse tipo de relacionamento de interação sem adicionar manualmente os termos de interação?
Respostas
Qualquer aproximador universal pode fazer isso. Você precisa de um termo como$A(\beta_A+\beta_{A\times C}\times C)$ aparecer, então a interação entre $A$ e $C$ é suficiente.
$$A\times C = \frac{(A+C)^2-A^2-C^2}{2}$$
Se você tiver um aproximador universal, ele pode (localmente) aproximar a forma quadrática em algum lugar de sua formulação, dando a você a interação sem multiplicar explicitamente $A$ e $C$.
Então, a única coisa que importa é selecionar um aproximador universal. Redes Neurais são, em geral, aproximador universal, assim como máquinas kernel com espaços de kernel de dimensão infinita (como a função de base radial, por exemplo) também.
Em redes neurais, se você tiver como entradas $A,B,C$, então com duas camadas ocultas e o quadrado como função de ativação você já atinge a possibilidade de interações.
Considere o vetor coluna $x = [A, B, C]$:
$$\hat y = W_2\sigma (W_1 x+b_1)+b_ 2$$
$W_1 x$ passa somas ponderadas dos recursos iniciais, $h_1 = \sigma(W_1 x+b_1)$ quadrá-los e finalmente $W_2h_1+b_ 2$ faz somas ponderadas dos itens quadrados.
MARS (Multivariate Adaptive Regression Splines) são capazes de detectar automaticamente interações não lineares entre variáveis explicativas sem adicioná-las manualmente no modelo
Talvez você possa adicionar termos de interação polinomial com algumas ordens altas e usar a regressão de laço? Você pode obter alguma pista dos coeficientes desses termos. Dito isso, os algoritmos de ML geralmente são para previsão em vez de estimar os efeitos.
Se você precisar de interações explícitas e interpretáveis, você deve usar MARS de 2º ou 3º grau. Se você precisar de interações explícitas, mas não interpretáveis (você não será capaz de extrair os recursos de interação após ajustar o modelo), poderá usar SVM com kernels polinomiais. Se estiver tudo bem com interações implícitas e flexíveis, como disse o Firebug, você pode usar um aproximador universal, como uma rede neural com ativações não lineares. Eu acho que você também poderia usar SVM com kernel de base radial para este propósito, pois também é um aproximador universal, no entanto, não estou completamente certo de como este modelo seria capaz de modelar interações (postei uma questão especificamente para este assunto que ainda não foi respondida).