1

我试图从一组特征 X 中预测变量 y,其中 X 在开始时是 36 个特征。我对此有两个问题:

  1. 创建多项式特征时如何处理布尔属性(0,1)?例如,将它们平方是没有意义的。

我到目前为止的代码:

poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X_train)
  1. 如何为多项式回归进行特征选择?因为为 36 个变量创建 2 次多项式特征会大大增加 X 的大小。是否有一种方法可以运行选择,例如返回基于 MSE 的最佳模型?
4

1 回答 1

0
  1. 确实,取布尔特征的平方是没有意义的。一种解决方案是将 PolynomialFeatures 与选项 interaction_only=True 一起使用,这样您就只能获得他们的产品。布尔值的乘积实际上是 AND。您也可以编写自己的函数来获得其他组合,例如 OR 或 XOR。

  2. 根据原始特征的数量,对所有可能的特征组合执行详尽的搜索可能会也可能不会耗时。我猜是后一种情况。然后你可以:

a) 使用自动执行变量选择的LASSO 回归(或弹性网络)

b)出于同样的原因尝试基于树的方法(例如随机森林

c) 尝试一些特征选择方法(例如卡方

于 2016-03-09T16:46:31.460 回答