R测量mboost中自变量的相互作用

R Measuring Interaction of Independant Variables in mboost

我最近一直在使用 mboost 获取大量自变量并确定有用的预测变量。例如:

library(mboost)
xx=glmboost(data=mtcars,mpg~.)

据我了解,该算法分别处理每个因变量,并尝试通过梯度过程识别重要的预测变量。

但也许有一些复杂的互动。可能 cylmpg 的影响随着 wt 的增加而变得不那么重要了。这可能具有直觉意义。一辆 12 缸的小型车是某种跑车,此时 mpg 效率低下的驱动程序是缸。但是对于卡车来说,低 mpg 的真正驱动因素是重量。

在使用 mboost 或其他提升算法时,您如何处理变量的(可能是非线性的)交互作用?

我不想走无法解释的神经网络或森林模型之路。有没有更好的方法来处理这个问题?

我真的很喜欢提升方法——它的论文是可读的,而且结果对于普通人来说似乎是可以理解的。但是当你有互动的时候,你似乎会得到一个不太完美的契合度。

谢谢,乔希

只需告诉公式考虑所有双向交互,如下所示:

library(mboost)
xx=glmboost(data=mtcars,mpg~.*.)

> xx

     Generalized Linear Models Fitted via Gradient Boosting

Call:
glmboost.formula(formula = mpg ~ . * ., data = mtcars)


     Squared Error (Regression) 

Loss function: (y - f)^2 


Number of boosting iterations: mstop = 100 
Step size:  0.1 
Offset:  20.09062 

Coefficients: 
  (Intercept)            wt        cyl:wt       disp:am       hp:drat       hp:qsec         hp:vs       drat:wt 
 5.4682615930 -0.7166140321 -0.1962980466 -0.0016453733 -0.0002571366 -0.0010587752 -0.0099340044 -0.0889320001 
    drat:qsec     drat:carb     qsec:gear     qsec:carb         vs:am 
 0.0332626627 -0.0333151844  0.0450134161 -0.0026624244  3.1278334260 
attr(,"offset")
[1] 20.09062