Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Как использовать Scikit-Learn для выбора признаков в наборе данных?

Этот вопрос помогает понять, как можно выбрать важные признаки из набора данных, используя методы из библиотеки Scikit-Learn.

Короткий ответ

Scikit-Learn предоставляет несколько методов для выбора признаков. Один из них – это VarianceThreshold, который удаляет признаки с низкой дисперсией. Также можно использовать Recursive Feature Elimination (RFE), который обучает модель и удаляет наименее важные признаки. Другой метод – это Univariate Feature Selection, который выбирает лучшие признаки с помощью статистических тестов, таких как хи-квадрат. Наконец, SelectFromModel позволяет выбрать признаки на основе их важности.

Длинный ответ

Выбор признаков – важный этап в процессе подготовки данных для машинного обучения, так как избыточные или нерелевантные признаки могут ухудшить качество модели. Scikit-Learn предлагает различные подходы для этого.

Методы выбора признаков

  1. VarianceThreshold
    Этот метод удаляет признаки с дисперсией ниже заданного порога, так как такие признаки не несут полезной информации. Например, если все значения признака одинаковы или почти одинаковы, его можно удалить.

    from sklearn.feature_selection import VarianceThreshold
    selector = VarianceThreshold(threshold=0.1)
    X_new = selector.fit_transform(X)
  2. Recursive Feature Elimination (RFE)
    Этот метод использует модель (например, линейную регрессию) для оценки важности признаков. Он рекурсивно удаляет наименее важные признаки, пока не останется заданное количество признаков.

    from sklearn.feature_selection import RFE
    from sklearn.linear_model import LogisticRegression
    model = LogisticRegression()
    selector = RFE(model, 5)  # Оставить 5 признаков
    X_new = selector.fit_transform(X, y)
  3. Univariate Feature Selection
    Использует статистические тесты (например, хи-квадрат), чтобы выбрать признаки, которые лучше всего связаны с целевой переменной. Этот метод хорошо работает, когда у нас есть числовые или категориальные признаки и нужно оценить их независимость от целевой переменной.

    from sklearn.feature_selection import SelectKBest, chi2
    selector = SelectKBest(chi2, k=5)
    X_new = selector.fit_transform(X, y)
  4. SelectFromModel
    Этот метод выбирает признаки на основе их важности, полученной из обученной модели. Например, деревья решений или случайный лес могут быть использованы для определения важности признаков.

    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier()
    model.fit(X, y)
    selector = SelectFromModel(model)
    X_new = selector.transform(X)

Выбор признаков помогает улучшить производительность модели, избавляясь от незначительных данных. Метод зависит от задачи и типа данных, а также от модели, с которой вы работаете. Эти техники часто применяются на этапе предварительной обработки данных.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Scikit-learn

Ключевые слова

#feature selection

#variancethreshold

#rfe

#univariate selection

#selectfrommodel

Подпишись на Data Science в телеграм