Spec-Zone.ru › scikit-learn

SplineTransformer

classsklearn.preprocessing.SplineTransformer(n_knots=5, degree=3, *, knots='uniform', extrapolation='constant', include_bias=True, order='C', sparse_output=False)[source]

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

Генерировать новую матрицу признаков, состоящую из n_splines=n_knots + degree - 1 (n_knots - 1 для extrapolation="periodic") базисных функций сплайнов (B-сплайнов) полиномиального порядка=`degree` для каждого признака.

Чтобы узнать больше о классе SplineTransformer, перейдите по ссылке: Инженерия временных признаков

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

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

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

Количество узлов сплайнов, если knots равно одному из {‘uniform’, ‘quantile’}. Должно быть больше или равно 2. Игнорируется, если knots является массивоподобным.

degreeint, по умолчанию=3

Степень полинома базиса сплайна. Должна быть неотрицательным целым числом.

knots{‘uniform’, ‘quantile’} или массивоподобный объект формы (n_knots, n_features), по умолчанию=’uniform’

Установить позиции узлов таким образом, чтобы первый узел <= признак <= последний узел.

  • Если ‘uniform’, n_knots количество узлов распределяется равномерно от минимального до максимального значений признаков.
  • Если ‘quantile’, они распределяются равномерно по квантилям признаков.
  • Если задан массивоподобный объект, он напрямую указывает отсортированные позиции узлов, включая граничные узлы. Обратите внимание, что внутри degree количество узлов добавляется перед первым узлом, то же самое после последнего узла.
extrapolation{‘error’, ‘constant’, ‘linear’, ‘continue’, ‘periodic’}, по умолчанию=’constant’

Если ‘error’, значения за пределами минимального и максимального значений обучающих признаков вызывают ValueError. Если ‘constant’, значение сплайнов в минимальном и максимальном значении признаков используется в качестве постоянной экстраполяции. Если ‘linear’, используется линейная экстраполяция. Если ‘continue’, сплайны экстраполируются как есть, т.е. вариант extrapolate=True в scipy.interpolate.BSpline. Если ‘periodic’, используются периодические сплайны с периодичностью, равной расстоянию между первым и последним узлом. Периодические сплайны обеспечивают равные значения функции и производных в первом и последнем узле. Например, это позволяет избежать введения произвольного скачка между 31 декабря и 1 января в признаках сплайнов, полученных из естественно периодического входного признака «день года». В этом случае рекомендуется вручную установить значения узлов для управления периодом.

include_biasbool, по умолчанию=True

Если False, последний элемент сплайна внутри диапазона данных признака отбрасывается. Поскольку B-сплайны суммируются до единицы по базисным функциям сплайнов для каждой точки данных, они неявно включают член смещения, т.е. столбец единиц. Он действует как член перехвата в линейных моделях.

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

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

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

Вернет разреженную матрицу CSR, если установлено True, иначе вернет массив. Этот вариант доступен только с scipy>=1.8.

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

Атрибуты:
bsplines_список формы (n_features,)

Список объектов BSplines, по одному для каждого признака.

n_features_in_int

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

feature_names_in_массив формы (n_features_in_,)

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

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

n_features_out_int

Общее количество выходных признаков, которое вычисляется как n_features * n_splines, где n_splines — количество элементов базиса B-сплайнов, n_knots + degree - 1 для сплайнов, не являющихся периодическими, и n_knots - 1 для периодических. Если include_bias=False, то это только n_features * (n_splines - 1).

См. также

KBinsDiscretizer

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

PolynomialFeatures

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

Примечания

Высокие степени и большое количество узлов могут привести к переобучению.

См. примеры/linear_model/plot_polynomial_interpolation.py.

Примеры

>>> import numpy as np
>>> from sklearn.preprocessing import SplineTransformer
>>> X = np.arange(6).reshape(6, 1)
>>> spline = SplineTransformer(degree=2, n_knots=3)
>>> spline.fit_transform(X)
array([[0.5 , 0.5 , 0.  , 0.  ],
       [0.18, 0.74, 0.08, 0.  ],
       [0.02, 0.66, 0.32, 0.  ],
       [0.  , 0.32, 0.66, 0.02],
       [0.  , 0.08, 0.74, 0.18],
       [0.  , 0.  , 0.5 , 0.5 ]])
fit(X, y=None, sample_weight=None)[source]

Вычислить позиции узлов сплайнов.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Данные.

yNone

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

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

Индивидуальные веса для каждого образца. Используется для расчета квантилей, если knots="quantile". Для knots="uniform", наблюдения с нулевым весом игнорируются при поиске min и max X.

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

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

fit_transform(X, y=None, **fit_params)[source]

Отображение и преобразование данных.

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

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

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

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

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

**fit_paramsdict

Дополнительные параметры подгонки.

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

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

get_feature_names_out(input_features=None)[source]

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

Параметры:
input_featuresмассив-подобный из str или None, по умолчанию=None

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

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

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

get_metadata_routing()[source]

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

Пожалуйста, обратитесь к Руководству пользователя для получения информации о работе механизма маршрутизации.

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

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

get_params(deep=True)[source]

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

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

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

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

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

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → SplineTransformer[source]

Запрос метаданных, передаваемых методу fit.

Обратите внимание, что этот метод актуален только в том случае, если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, обратитесь к Руководству пользователя для получения информации о работе механизма маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются fit (если предоставлены). Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются и мета-оцениватель не передаёт их fit.
  • None: метаданные не запрашиваются, и мета-оцениватель выдаст ошибку, если пользователь предоставит их.
  • str: метаданные должны передаваться мета-оценивателю с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED): сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

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

Примечание

Этот метод актуален только в том случае, если этот оцениватель используется как под-оцениватель мета-оценивателя, например, внутри Pipeline. В противном случае он не имеет эффекта.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

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

Обновлённый объект.

set_output(*, transform=None)[source]

Установить контейнер вывода.

См. Введение в API set_output для примера использования API.

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

Настройка вывода transform и fit_transform.

  • "default": Формат вывода по умолчанию для преобразователя
  • "pandas": Вывод DataFrame
  • "polars": Вывод Polars
  • None: Настройка преобразования не изменяется

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

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

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

set_params(**params)[source]

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

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

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

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

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

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

transform(X)[source]

Преобразовать данные каждого признака в B-сплайны.

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

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

Возвращаемое значение:
XBS{ndarray, разреженная матрица} формы (n_samples, n_features * n_splines)

Матрица признаков, где n_splines — количество базовых элементов B-сплайнов, n_knots + степень - 1.

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

Основные моменты выпуска scikit-learn 1.0

Инженерия временных признаков

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

Оценка алгоритмов обнаружения аномалий

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

Spec-Zone.ru

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