@vldud

Отбор признаков из sklearn.feature_selection не работает с разреженными матрицами?

Добрый день! Выполняю отбор признаков с помощью sklearn. Возьмем для примера ANOVA - sklearn.feature_selection.f_classif. В описании аргументов функции sklearn.feature_selection.f_classif в качестве входного массива признаков значится X{array-like, sparse matrix}. Я понимаю это, как признаки, часть из которых nan.
Запуск кода
X, y = make_classification(
    n_samples=200,
    n_features=10,
    n_informative=2,
    n_redundant=8,
    n_repeated=0,
    shuffle=False,
    random_state=random_state
)
X[0][0] = np.nan
selected_features = SelectKBest(f_classif, k=2).fit_transform(X, y)

приводит к ошибке
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

Комментирование строкиX[0][0] = np.nan ошибку устраняет, т.е. проблема именно в nan значении.

Вопрос: что имеется в виду в документации под sparse matrix и какие есть методики feature selection в sklearn или в других python библиотеках для разреженного признакового пространства?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@U235U235
В разреженных матрицах обычно неуказаные элементы не nan, а нули.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы