【问题标题】:Bagging (bootstrap) of RFE using python scikit-learn使用 python scikit-learn 的 RFE 装袋(引导)
【发布时间】:2015-12-19 11:56:38
【问题描述】:

我想使用 python scikit-learn 执行 bagging。 我想结合 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 个步骤?

【问题讨论】:

  • 也是这个问题的答案。好问题

标签: python scikit-learn


【解决方案1】:

如果没有 bagging,可以使用以下行访问 RFE 给出的排名:

rfe.ranking_

此顺序可用于对特征名称进行排序,然后取前五个特征。有关此参数的示例,请参阅 the documentation for sklearn RFE。 使用 bagging,您可能希望访问 30 个估算器中的每一个。基于documentation for sklearn BaggingClassifier,您可以通过以下方式访问它们:

bagging.estimators_

所以:对于bagging.estimators_中的每一个bagging,得到排名,根据这个排名对特征进行排序,取前5个元素! 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2017-08-30
    • 2018-12-21
    • 2014-07-28
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多