を使用recurive feature elimination with cross validation (rfecv)
して機能選択手法を使用していGridSearchCV
ます。
私のコードは次のとおりです。
X = df[my_features_all]
y = df['gold_standard']
x_train, x_test, y_train, y_test = train_test_split(X, y, random_state=0)
k_fold = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
clf = RandomForestClassifier(random_state = 42, class_weight="balanced")
rfecv = RFECV(estimator=clf, step=1, cv=k_fold, scoring='roc_auc')
param_grid = {'estimator__n_estimators': [200, 500],
'estimator__max_features': ['auto', 'sqrt', 'log2'],
'estimator__max_depth' : [3,4,5]
}
CV_rfc = GridSearchCV(estimator=rfecv, param_grid=param_grid, cv= k_fold, scoring = 'roc_auc', verbose=10, n_jobs = 5)
CV_rfc.fit(x_train, y_train)
print("Finished feature selection and parameter tuning")
ここで、上記のコードからoptimal number of features
andを取得したいと思います。selected features
そのために、以下のコードを実行しました。
#feature selection results
print("Optimal number of features : %d" % rfecv.n_features_)
features=list(X.columns[rfecv.support_])
print(features)
ただし、次のエラーが発生しました:
AttributeError: 'RFECV' object has no attribute 'n_features_'
.
これらの詳細を取得する他の方法はありますか?
必要に応じて詳細をお知らせします。