使用python scikit-learn套装(引导)RFE

时间:2015-12-19 11:56:39

标签: python scikit-learn

我想使用python scikit-learn进行装袋。 我想结合RFE(),递归特征选择算法。 步骤如下。

  1. 制作30个子集,允许冗余选择(装袋)
  2. 为每个数据集执行RFE
  3. 获取每个分类的输出
  4. 从每个输出中找到前5个功能
  5. 我尝试使用BaggingClassifier方法,如下所示,但它花了很多时间,似乎无法正常工作。仅使用RFE可以正常工作(rfe.fit())。

    cf1 = LinearSVC()
    rfe = RFE(estimator=cf1)
    bagging = BaggingClassifier(rfe, n_estimators=30)
    bagging.fit(trainx, trainy)
    

    此外,步骤4可能难以找到顶级特征,因为Bagging分类器不提供像RFE()中的ranking_这样的属性。 还有其他一些好方法可以实现这4个步骤吗?

1 个答案:

答案 0 :(得分:0)

如果没有套袋,则可以通过以下行访问RFE给出的排名:

rfe.ranking_

此顺序可用于对要素名称进行排序,然后采用五个优先要素。有关此参数的示例,请参见the documentation for sklearn RFE。 使用装袋法时,您需要访问30个估算器中的每一个。基于documentation for sklearn BaggingClassifier,您可以通过以下方式访问它们:

bagging.estimators_

因此:对于bagging.estimators_中的每个装袋,获取排名,根据该排名对要素进行排序,并采用前五个元素! 希望这会有所帮助。