научитесь использовать f_classif и выбирать функции с оценкой выше порогового значения

#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