Spec-Zone.ru › scikit-learn

SequentialFeatureSelector

classsklearn.feature_selection.SequentialFeatureSelector(estimator, *, n_features_to_select='auto', tol=None, direction='forward', scoring=None, cv=5, n_jobs=None)[исходный код]

Преобразователь, выполняющий последовательный отбор признаков.

Этот селектор признаков последовательно добавляет (прямой отбор) или удаляет (обратный отбор) признаки, формируя подмножество признаков жадным способом. На каждом шаге оцениватель выбирает лучший признак для добавления или удаления на основе оценки оценивателя при перекрёстной проверке. В случае обучения без учителя этот селектор признаков учитывает только признаки (X), а не целевые выходные значения (y).

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.24.

Параметры:
estimatorэкземпляр оценивателя

Необученный оцениватель.

n_features_to_select«auto», int или float, по умолчанию «auto»

Если "auto", поведение зависит от параметра tol:

  • если tol не равно None, признаки отбираются до тех пор, пока изменение оценки не превысит tol.
  • в противном случае отбирается половина признаков.

Если задано целое число, параметр определяет абсолютное количество отбираемых признаков. Если задано число с плавающей точкой от 0 до 1, оно задаёт долю отбираемых признаков.

Добавлено в версии 1.1: Вариант "auto" добавлен в версии 1.1.

Изменено в версии 1.3: В версии 1.3 значение по умолчанию изменено с "warn" на "auto".

tolfloat, по умолчанию None

Если оценка между двумя последовательными добавлениями или удалениями признаков не увеличивается как минимум на tol, добавление или удаление прекращается.

tol может быть отрицательным при удалении признаков с использованием direction="backward". При прямом отборе tol должно быть строго положительным. Это может быть полезно для сокращения числа признаков ценой небольшого снижения оценки.

tol включается только если n_features_to_select равно "auto".

Добавлено в версии 1.1.

direction{‘forward’, ‘backward’}, по умолчанию=’forward’

Определяет, выполнять прямой или обратный отбор.

scoringstr или вызываемый объект, по умолчанию None

Метод оценки для перекрёстной проверки. Возможные варианты:

  • str: варианты см. в разделе Оцениватели с именами-строками.
  • вызываемый объект: вызываемый объект-оцениватель (например, функция) с сигнатурой scorer(estimator, X, y), возвращающий одно значение. Подробнее см. в разделе Вызываемые оцениватели.
  • None: используется критерий оценки по умолчанию для estimator.
cvint, генератор перекрёстной проверки или итерируемый объект, по умолчанию None

Определяет стратегию разбиения для перекрёстной проверки. Возможные значения cv:

  • None — используется перекрёстная проверка с 5 блоками по умолчанию,
  • целое число — задаёт количество блоков в (Stratified)KFold,
  • разбиватель перекрёстной проверки,
  • итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.

Для целочисленных значений и None, если оцениватель является классификатором, а y — бинарным или многоклассовым, используется StratifiedKFold. Во всех остальных случаях используется KFold. Эти разби­ватели создаются с shuffle=False, поэтому при каждом вызове разбиения будут одинаковыми.

Различные стратегии перекрёстной проверки, которые можно использовать здесь, описаны в руководстве пользователя.

n_jobsint, по умолчанию None

Количество параллельно выполняемых задач. При оценке нового признака для добавления или удаления процедура перекрёстной проверки выполняется параллельно по блокам. None означает 1, если только не используется контекст joblib.parallel_backend. -1 означает использование всех процессоров. Подробнее см. в глоссарии.

Атрибуты:
n_features_in_int

Количество признаков, обнаруженных во время обучения. Определяется только в том случае, если базовый оцениватель предоставляет такой атрибут после обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, обнаруженных во время обучения. Определяется только если X содержит имена признаков, представленные строками.

Добавлено в версии 1.0.

n_features_to_select_int

Количество отобранных признаков.

support_ndarray формы (n_features,), dtype=bool

Маска отобранных признаков.

См. также

GenericUnivariateSelect

Одномерный селектор признаков с настраиваемой стратегией.

RFE

Рекурсивное исключение признаков на основе весов важности.

RFECV

Рекурсивное исключение признаков на основе весов важности с автоматическим выбором количества признаков.

SelectFromModel

Отбор признаков на основе пороговых значений весов важности.

Примеры

>>> from sklearn.feature_selection import SequentialFeatureSelector
>>> from sklearn.neighbors import KNeighborsClassifier
>>> from sklearn.datasets import load_iris
>>> X, y = load_iris(return_X_y=True)
>>> knn = KNeighborsClassifier(n_neighbors=3)
>>> sfs = SequentialFeatureSelector(knn, n_features_to_select=3)
>>> sfs.fit(X, y)
SequentialFeatureSelector(estimator=KNeighborsClassifier(n_neighbors=3),
                          n_features_to_select=3)
>>> sfs.get_support()
array([ True, False,  True,  True])
>>> sfs.transform(X).shape
(150, 3)
fit(X, y=None, **params)[исходный код]

Определить признаки для отбора из X.

Параметры:
Xarray-подобный объект формы (n_samples, n_features)

Обучающие векторы, где n_samples — количество образцов, а n_features — количество предикторов.

yarray-подобный объект формы (n_samples,), по умолчанию None

Целевые значения. Этот параметр может игнорироваться при обучении без учителя.

**paramsdict, по умолчанию None

Параметры, передаваемые базовым объектам estimator, cv и scorer.

Добавлено в версии 1.6: Доступно только если enable_metadata_routing=True, что можно настроить с помощью sklearn.set_config(enable_metadata_routing=True). Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
selfобъект

Возвращает сам экземпляр.

fit_transform(X, y=None, **fit_params)[исходный код]

Обучить на данных, затем преобразовать их.

Обучает преобразователь на X и y с дополнительными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xarray-подобный объект формы (n_samples, n_features)

Входные образцы.

yarray-подобный объект формы (n_samples,) или (n_samples, n_outputs), по умолчанию None

Целевые значения (None для преобразований без учителя).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте их, только если оцениватель принимает дополнительные параметры в методе fit.

Возвращает:
X_newndarray — массив формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[исходный код]

Отфильтровать имена признаков в соответствии с отобранными признаками.

Параметры:
input_featuresarray-подобный объект из строк или None, по умолчанию None

Входные признаки.

  • Если input_features равно None, то в качестве имён признаков используются feature_names_in_. Если feature_names_in_ не определён, генерируются следующие имена входных признаков: ["x0", "x1", ..., "x(n_features_in_ - 1)"].
  • Если input_features является array-подобным объектом, то input_features должен соответствовать feature_names_in_, если feature_names_in_ определён.
Возвращает:
feature_names_outndarray из строковых объектов

Преобразованные имена признаков.

get_metadata_routing()[исходный код]

Получить настройки маршрутизации метаданных этого объекта.

Описание работы механизма маршрутизации см. в руководстве пользователя.

Добавлено в версии 1.6.

Возвращает:
routingMetadataRouter

MetadataRouter, содержащий информацию о маршрутизации.

get_params(deep=True)[исходный код]

Получить параметры этого оценивателя.

Параметры:
deepbool, по умолчанию True

Если True, возвращаются параметры этого оценивателя и содержащихся в нём подобъектов, являющихся оценивателями.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

get_support(indices=False)[исходный код]

Получить маску или целочисленные индексы отобранных признаков.

Параметры:
indicesbool, по умолчанию False

Если True, возвращаемым значением будет массив целых чисел, а не булева маска.

Возвращает:
supportarray

Индекс, выбирающий сохранённые признаки из вектора признаков. Если indices равно False, это булев массив формы [# входных признаков], в котором элемент равен True тогда и только тогда, когда соответствующий признак выбран для сохранения. Если indices равно True, это целочисленный массив формы [# выходных признаков], значения которого являются индексами во входном векторе признаков.

inverse_transform(X)[исходный код]

Выполнить обратное преобразование.

Параметры:
Xмассив формы [n_samples, n_selected_features]

Входные образцы.

Возвращает:
X_originalмассив формы [n_samples, n_original_features]

X с вставленными столбцами из нулей в тех местах, где признаки были удалены методом transform.

set_output(*, transform=None)[исходный код]

Задать контейнер выходных данных.

Подробнее см. в руководстве пользователя, а пример использования API приведён в разделе Знакомство с API set_output.

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию None

Настроить формат выходных данных transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": выходные данные типа DataFrame
  • "polars": выходные данные типа Polars
  • None: конфигурация преобразования не изменяется

Добавлено в версии 1.4: Добавлен вариант "polars".

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

set_params(**params)[исходный код]

Задать параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

transform(X)[исходный код]

Сократить X до отобранных признаков.

Параметры:
Xмассив формы [n_samples, n_features]

Входные образцы.

Возвращает:
X_rмассив формы [n_samples, n_selected_features]

Входные образцы, содержащие только отобранные признаки.

Примеры в галерее

Отбор признаков на основе модели и последовательный отбор признаков

Основные нововведения scikit-learn 0.24

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.feature_selection.SequentialFeatureSelector.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API