一部の機能を削除するために、scikit の再帰的機能の削除を使用しています。
ストレート アップRFEを使用する場合、ステップをフロートとして設定できます。つまり、(たとえば) 各ステップでフィーチャの 10% を削除する必要があります。それはうまくいきます。
RFECVに切り替えると、これは機能しないようです。
コード サンプル ( RFEでは問題なく動作し、 RFECVでは失敗します):
from sklearn.feature_selection import RFECV
selector = RFECV(model_classifier, step=0.1, cv=3,
scoring='roc_auc', verbose=10, n_jobs=-1)
selector.fit(X_train, y_train)
症状:
プロセスは終わることなく永遠に続きます。
コアがアクティブにならないようです。
標準出力出力:
... lib/python3.4/site-packages/sklearn/feature_selection/rfe.py:198: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future support_[features[ranks][:threshold]] = False
標準出力にも次のように表示されます:
Fitting estimator with 177 features. Fitting estimator with 177 features. Fitting estimator with 177 features. Fitting estimator with 124 features. Fitting estimator with 124 features. Fitting estimator with 71 features. Fitting estimator with 71 features. Fitting estimator with 124 features. Fitting estimator with 18 features. Fitting estimator with 18 features. Fitting estimator with 71 features. Fitting estimator with 18 features.
(ただし、実際には何も起こりません)整数ステップで正常に動作します