使用python scikit学习RFE的Bagging(bootstrap)



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

  1. 制作30个子集,允许冗余选择(装袋)
  2. 对每个数据集执行RFE
  3. 获取每个分类的输出
  4. 从每个输出中查找前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个步骤?

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

rfe.ranking_

此顺序可用于对特征名称进行排序,然后取前五个特征。有关此参数的示例,请参阅sklearn RFE的文档。使用bagging,您将希望访问您的30个估计器中的每一个。根据sklearn BaggingClassifier的文档,您可以使用访问它们

bagging.estimators_

所以:对于bagging.estimators_中的每个bagging,获得排名,根据该排名对特征进行排序,并取前五个元素!希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新