我使用RFE与ExtraTreeRegressor作为估计器,以便在回归问题中进行supervised featuresselection。
我用下面的通用代码从模型获得排名和支持:
rfe_vola = RFE(estimator=ExtraTreesRegressor(), n_features_to_select=1, step=1)
rfe_vola.fit(X_allfeatures, y_vol)
ranking_vola = rfe_vola.ranking_
print("ranking: ",ranking_vola)
print("support: ",rfe_vola.support_)
我想要的是更深入的信息,因此是RFE每次迭代的分数或特征评估。我注意到有一些隐藏的函数,如_fit,我正在考虑尝试强制step_score参数不同于none…问题是我不能得到我想要的东西。(我是python的新手…)我想在每次迭代中得到分数的打印。有人做过这样的工作吗?step_score参数的合适值应该是多少?(我已经尝试过布尔值,但它不起作用)
谢谢你的建议!!
这就是我要找的:
from sklearn.metrics import r2_score
rfe_vola = RFE(estimator=ExtraTreesRegressor(),n_features_to_select=None, step=1, verbose=2)
r2_scorer = lambda est, features: r2_score(y_true=y_vol,y_pred=est.predict(X_allfeatures[:, features]))
rfe_vola._fit(X_allfeatures, y_vol, r2_scorer)
ranking_vola = rfe_vola.ranking_