我将递归特征消除代码应用于特征选择:
rv=RandomForestClassifier(n_jobs=1,class_weight='balanced',max_depth=5,n_estimators=100)
rv.fit(X,y)
rve=RFECV(rv,min_features_to_select=1,cv = 3)
rve.fit(X,y)
rfe_score = ranking(list(map(float, rve.ranking_)), colnames, order=-1)
rfe_score = pd.DataFrame(list(rfe_score.items()), columns=['Features', 'Score'])
rfe_score = rfe_score.sort_values("Score", ascending = False)
然后我绘制了前30个最佳功能:
sns_rfe_plot = sns.catplot(x="Score", y="Features", data = rfe_score[0:30], kind = "bar",
height=5, aspect=1.9, palette='coolwarm')
从得分中,我发现其中四个功能得分最高,这意味着我必须保留它们作为我的分类部分。上面的所有代码都是正确的。但是,我的问题是,如何从此处删除不相关的功能,而仅保留相关的功能,以将其用于分类? 请为此分享代码。