Spec-Zone.ru › scikit-learn

PolynomialFeatures

classsklearn.preprocessing.PolynomialFeatures(degree=2, *, interaction_only=False, include_bias=True, order='C')[исходный код]

Создает полиномиальные признаки и признаки взаимодействия.

Создает новую матрицу признаков, состоящую из всех полиномиальных комбинаций признаков со степенью, не превышающей указанную. Например, если входной образец двумерный и имеет вид [a, b], то полиномиальные признаки степени 2 будут такими: [1, a, b, a^2, ab, b^2].

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

Параметры:
degreeint или tuple (min_degree, max_degree), по умолчанию=2

Если задано одно целое число, оно определяет максимальную степень полиномиальных признаков. Если передан кортеж (min_degree, max_degree), то min_degree — минимальная, а max_degree — максимальная степень полинома для создаваемых признаков. Обратите внимание: min_degree=0 и min_degree=1 эквивалентны, поскольку вывод члена нулевой степени определяется параметром include_bias.

interaction_onlybool, по умолчанию=False

Если задано значение True, создаются только признаки взаимодействия: произведения не более чем degree различных входных признаков; то есть исключаются члены, в которых один и тот же входной признак возведен в степень 2 или выше:

  • включены: x[0], x[1], x[0] * x[1] и т. д.
  • исключены: x[0] ** 2, x[0] ** 2 * x[1] и т. д.
include_biasbool, по умолчанию=True

Если задано значение True (по умолчанию), добавляется столбец смещения — признак, у которого все полиномиальные степени равны нулю (то есть столбец из единиц, выступающий в роли свободного члена в линейной модели).

order{‘C’, ‘F’}, по умолчанию=’C’

Порядок элементов выходного массива в плотном представлении. Порядок 'F' ускоряет вычисления, но может замедлить последующую работу оценивателей.

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

Атрибуты:
powers_ndarray формы (n_output_features_, n_features_in_)

Показатель степени для каждого входного признака в выходных данных.

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

n_output_features_int

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

См. также

SplineTransformer

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

Примечания

Учитывайте, что количество признаков в выходном массиве растет полиномиально относительно количества признаков во входном массиве и экспоненциально относительно степени. Большие степени могут привести к переобучению.

См. examples/linear_model/plot_polynomial_interpolation.py

Примеры

>>> import numpy as np
>>> from sklearn.preprocessing import PolynomialFeatures
>>> X = np.arange(6).reshape(3, 2)
>>> X
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> poly = PolynomialFeatures(2)
>>> poly.fit_transform(X)
array([[ 1.,  0.,  1.,  0.,  0.,  1.],
       [ 1.,  2.,  3.,  4.,  6.,  9.],
       [ 1.,  4.,  5., 16., 20., 25.]])
>>> poly = PolynomialFeatures(interaction_only=True)
>>> poly.fit_transform(X)
array([[ 1.,  0.,  1.,  0.],
       [ 1.,  2.,  3.,  6.],
       [ 1.,  4.,  5., 20.]])
fit(X, y=None)[исходный код]

Вычисляет количество выходных признаков.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Данные.

yИгнорируется

Не используется; параметр присутствует для согласованности API.

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

Обученный преобразователь.

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

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

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

Параметры:
Xarray-like формы (n_samples, n_features)

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

yarray-like формы (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-like из строк или None, по умолчанию=None

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

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

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

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

Возвращает правила маршрутизации метаданных этого объекта.

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

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

Объект MetadataRequest, содержащий сведения о маршрутизации.

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

Возвращает параметры этого оценивателя.

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

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

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

Имена параметров и соответствующие им значения.

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{array-like, разреженная матрица} формы (n_samples, n_features)

Данные для преобразования, построчно.

Для разреженных входных данных предпочтителен формат CSR (для повышения скорости), однако при степени 4 и выше требуется CSC. Если степень меньше 4, а входные данные имеют формат CSC, они будут преобразованы в CSR, для них будут созданы полиномиальные признаки, после чего данные преобразуются обратно в CSC.

Для степени 2 или 3 используется метод, описанный в статье «Использование разреженности для ускорения развертывания полиномиальных признаков матриц CSR с помощью K-симплексных чисел» Эндрю Найстрома и Джона Хьюза; он значительно быстрее метода для входных данных CSC. Поэтому входные данные CSC преобразуются в CSR, а перед возвратом выходные данные преобразуются обратно в CSC, что и объясняет предпочтительность CSR.

Возвращает:
XP{ndarray, разреженная матрица} формы (n_samples, NP)

Матрица признаков, где NP — количество полиномиальных признаков, созданных из комбинаций входных данных. Если передана разреженная матрица, она будет преобразована в формат CSR.

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

Создание признаков, связанных со временем

Визуализация вероятностей классификации

Объединение предикторов с помощью стекинга

Визуализация вероятностных предсказаний VotingClassifier

Сравнение линейных байесовских регрессоров

Регрессия Пуассона и ненормальная функция потерь

Полиномиальная и сплайновая интерполяция

Обучение устойчивого линейного оценивателя

Отображение конвейеров

Недообучение и переобучение

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

Границы классификации для разных ядер SVM

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

Spec-Zone.ru

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