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]
-
Входные образцы, содержащие только отобранные признаки.
Примеры в галерее
© 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