我想使用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可能很难找到顶部特征,因为Bagging分类器在RFE()中没有提供ranking_这样的属性。有没有其他好方法可以实现这4个步骤?
如果没有装袋,可以通过以下行访问RFE给出的排名:
rfe.ranking_
此顺序可用于对特征名称进行排序,然后取前五个特征。有关此参数的示例,请参阅sklearn RFE的文档。使用bagging,您将希望访问您的30个估计器中的每一个。根据sklearn BaggingClassifier的文档,您可以使用访问它们
bagging.estimators_
所以:对于bagging.estimators_中的每个bagging,获得排名,根据该排名对特征进行排序,并取前五个元素!希望这能有所帮助。