Scikit - 带有布尔运算的多项式回归和特征选择

时间:2016-03-08 11:12:44

标签: python scikit-learn regression feature-selection non-linear-regression

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

  1. 如何在创建多项式要素时处理布尔属性(0,1)?例如,将它们放在一起是没有意义的。
  2. Code I迄今为止:

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

1 个答案:

答案 0 :(得分:0)

  1. 没错,采用布尔特征的平方是没有意义的。一种解决方案是使用PolynomialFeatures并选择interaction_only = True,这样您就只能得到他们的产品。在布尔情况下的产品实际上是AND。您也可以编写自己的函数来获得其他组合,如OR或XOR。

  2. 根据原始功能的数量,对所有可能的功能组合执行穷举搜索可能会或可能不耗时。我想这是后一种情况。然后你可以:

  3. a)使用自动执行变量选择的LASSO regression(或elastic net

    b)出于同样的原因尝试基于树的方法(例如random forest

    c)尝试一些特征选择方法(例如chi-square