2017-12-14 11 views
0

グリッドで2つのプロセッサとプリプロセッサを検索するコードを記述したいだけでなく、さまざまな機能の組み合わせにも対応しています。私はgridsearchCVの中でRFECVを使ってこれを行いました。しかし、これは実行に時間がかかります。そのため、私はその順序を逆転させた。私はグリッド検索を行い、それをRFECVの中に入れました。今、最高のモデルで実際にどの機能が選択されているかを確認して印刷します。私はこのウェブサイトからいくつかのソリューションを試しましたが、どれも解決していませんでした。選択した機能にはどのようにアクセスできますか? grid_dem.get_support(indices=True)grid_dem.support_の両方が機能しませんでした。私はこれと他の同様のエラーを取得:私のコードのAttributeError: 'RFECV' object has no attribute 'support_'gridsearchCV内のRFECVから選択したフィーチャを取得する

関連する部分がある:あなたが最後の2行で見ることができるように

pipe = Pipeline([('preprocessing', StandardScaler()), ('rbf_svm', SVC(max_iter=1e6))]) 
param_grid ={'preprocessing': [StandardScaler(), MinMaxScaler(), Normalizer(), RobustScaler()], 
    'rbf_svm__kernel': ['rbf', 'poly', 'linear', 'sigmoid'], 
    'rbf_svm__C': np.logspace(-3,2,5), 'rbf_svm__gamma': np.logspace(-3,2,5)} 

    # {'preprocessing': [StandardScaler(), MinMaxScaler(), Normalizer(), RobustScaler()], 
    # 'rbf_svm': [LogisticRegression(max_iter=1e6)], 
    # 'logisticregression__C': np.logspace(-3,2,5)}] 

grid_dem = GridSearchCV(pipe, param_grid, cv=5,verbose=5,n_jobs=3) 
grid_dem.fit(X_democrat_train,y_democrat_train) 
grid_dem.score(X_democrat_test,y_democrat_test) 
print(grid_dem.best_estimator_) 
rfecv=RFECV(grid_dem, verbose=3) 
print(rfecv) 
print(rfecv.get_support(indices=True)) 
# rfecv=rfecv.fit_transform(X_democrat_train, y_democrat_train) 
# print(rfecv.get_params()) 

、私はまた、Xを変換しようとしたが、これはしませんでしたいずれかの作業。

答えて

0

gridSearchにパイプラインを送信しました。したがって、best_estimator_はパイプラインを返します。しかし、grid_demはまだGridSearchCVオブジェクトです。だから明らかにget_support()は動作しません。その後、grid_demRFECVに渡しましたが、fit()を呼び出しませんでした。なぜsupport_が利用できないのですか?

このようにコードを更新してください:あなたの応答のための

rfecv=RFECV(grid_dem.best_estimator_, verbose=3) <==Edited 
rfecv.fit(X_democrat_train,y_democrat_train) #<==This is what you want 
print(rfecv.get_support(indices=True)) 
# rfecv=rfecv.fit_transform(X_democrat_train, y_democrat_train) 
# print(rfecv.get_params())mocrat_train,y_democrat_train) 
+0

感謝。私はあなたのアップデートを試しましたが、私は次のエラーが表示されます: 'RuntimeError:クラシファイアは "coef_"または "feature_importances_"属性を公開しません。これでどうしたらいいですか? – Kate

+0

@Kateはい。 GridSearchCVはそれらを持っていないので、RFECVはこれらの属性の1つを持つ推定子でのみ使用できます。編集された答えを試してみてください。 –

関連する問題