#scikit-learn #feature-selection
#scikit-learn #функция-выбор
Вопрос:
Я использую f_classif
для определения оценок моих функций:
def select_feature_anova(x,y,data):
anova = feature_selection.f_classif(x, y)
threshold = 10
# How to build x_new?
Какой самый простой способ преобразовать x
в x_new
, чтобы он включал только функции с оценкой выше порогового значения? Также я хотел бы исключить функции с оценкой Nan
.
Ответ №1:
Основываясь на documentation
, мы можем фильтровать объекты на основе F-оценки.
Попробуйте это!
from sklearn.feature_selection import f_classif
import numpy as np
np.seterr(divide='ignore', invalid='ignore')
def select_feature_anova(X, y, threshold=10):
F,_ = feature_selection.f_classif(X, y)
X_new = X[:,F>threshold]
return X_new