Я тестировал этот код, который видел в сети, и задавался вопросом, как я могу получить из него окончательные названия функций SelectKBest? Причина в том, что я пытаюсь реализовать выбор функций в рамках перекрестной проверки в моем наборе данных, поскольку он сильно несбалансирован и выполняет простое разделение на тестовый поезд, тогда выбор функций из набора поездов не будет надежным. Пожалуйста, поправьте меня, если я ошибаюсь. Спасибо!
from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_validate
from sklearn.pipeline import Pipeline
from sklearn.pipeline import FeatureUnion
from sklearn.linear_model import LogisticRegression
from sklearn.feature_selection import SelectKBest
X = data.drop('Species', axis = 1)
y = data['Species']
# create feature union
features = []
features.append(('select_best', SelectKBest(k=2)))
feature_union = FeatureUnion(features)
# create pipeline
estimators = []
estimators.append(('feature_union', feature_union))
estimators.append(('logistic', LogisticRegression(solver='liblinear')))
model = Pipeline(estimators)
# evaluate pipeline
kfold = KFold(n_splits=5, random_state=7, shuffle=True)
results = cross_validate(model, X, y, cv=kfold, return_train_score = True, scoring =
'accuracy')
print(results.keys())