使用 python scikit-learn 对 RFE 进行 Bagging (bootstrap)
Bagging (bootstrap) of RFE using python scikit-learn
我想使用 python scikit-learn 执行装袋。
我想结合 RFE(),递归特征选择算法。
步骤如下。
- 制作 30 个允许冗余选择(装袋)的子集
- 对每个数据集执行RFE
- 获取每个分类的输出
- 从每个输出中找到前 5 个特征
我尝试使用如下所示的 BaggingClassifier 方法,但它花费了很多时间而且似乎不起作用。仅使用 RFE 没有问题(rfe.fit())。
cf1 = LinearSVC()
rfe = RFE(estimator=cf1)
bagging = BaggingClassifier(rfe, n_estimators=30)
bagging.fit(trainx, trainy)
另外,第4步可能很难找到top feature,因为Bagging分类器没有提供像RFE()中的ranking_这样的属性。
还有其他一些好的方法可以实现这 4 个步骤吗?
如果没有装袋,可以通过以下行访问 RFE 给出的排名:
rfe.ranking_
这个顺序可以用来对特征名称进行排序,然后取前五个特征。有关此参数的示例,请参阅 the documentation for sklearn RFE。
使用 bagging,您可能希望访问 30 个估算器中的每一个。基于 documentation for sklearn BaggingClassifier,您可以通过以下方式访问它们:
bagging.estimators_
所以:对于bagging.estimators_中的每一个bagging,获取排名,根据这个排名对特征进行排序,取前五个元素!
希望这有帮助。
我想使用 python scikit-learn 执行装袋。 我想结合 RFE(),递归特征选择算法。 步骤如下。
- 制作 30 个允许冗余选择(装袋)的子集
- 对每个数据集执行RFE
- 获取每个分类的输出
- 从每个输出中找到前 5 个特征
我尝试使用如下所示的 BaggingClassifier 方法,但它花费了很多时间而且似乎不起作用。仅使用 RFE 没有问题(rfe.fit())。
cf1 = LinearSVC()
rfe = RFE(estimator=cf1)
bagging = BaggingClassifier(rfe, n_estimators=30)
bagging.fit(trainx, trainy)
另外,第4步可能很难找到top feature,因为Bagging分类器没有提供像RFE()中的ranking_这样的属性。 还有其他一些好的方法可以实现这 4 个步骤吗?
如果没有装袋,可以通过以下行访问 RFE 给出的排名:
rfe.ranking_
这个顺序可以用来对特征名称进行排序,然后取前五个特征。有关此参数的示例,请参阅 the documentation for sklearn RFE。 使用 bagging,您可能希望访问 30 个估算器中的每一个。基于 documentation for sklearn BaggingClassifier,您可以通过以下方式访问它们:
bagging.estimators_
所以:对于bagging.estimators_中的每一个bagging,获取排名,根据这个排名对特征进行排序,取前五个元素! 希望这有帮助。