Ich möchte einen Code schreiben, dass Gitter über ein paar Prozessoren und Präprozessoren, sondern auch über verschiedene Kombinationen von Features sucht. Ich tat dies, indem ich RFECV innerhalb eines gridsearchCV verwendete. Das dauert jedoch ewig. Deshalb habe ich die Bestellung storniert. Ich habe eine Gittersuche gemacht und dann habe ich sie in RFECV eingefügt. Jetzt möchte ich sehen und drucken, welche Features tatsächlich im besten Modell ausgewählt sind. Ich habe ein paar Lösungen von dieser Website ausprobiert, aber keine von ihnen hat funktioniert. Wie kann ich auf die ausgewählten Funktionen zugreifen? Sowohl grid_dem.get_support(indices=True)
als auch grid_dem.support_
funktionierten nicht. Ich erhalte diese und andere ähnliche Fehler: AttributeError: 'RFECV' object has no attribute 'support_'
Abrufen ausgewählter Features von RFECV innerhalb von gridsearchCV
Der relevante Teil meines Codes ist:
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())
Wie Sie in den letzten beiden Zeilen sehen können, habe ich versucht, auch die X zu verwandeln, aber das hat nicht arbeite entweder.
Vielen Dank für Ihre Antwort. Ich habe versucht, Ihr Update, aber ich bekomme den folgenden Fehler: 'RuntimeError: Der Klassifikator nicht "coef_" oder "feature_importances_" Attribute ". Was soll ich damit machen? – Kate
@Kate Ja. Thats, weil GridSearchCV diese nicht hat und RFECV kann nur mit jenen Schätzern verwendet werden, die eines dieser Attribute haben. Probieren Sie die bearbeitete Antwort aus. –