Spec-Zone.ru › scikit-learn

SplineTransformer

classsklearn.preprocessing.SplineTransformer(n_knots=5, degree=3, *, knots='uniform', extrapolation='constant', include_bias=True, order='C', handle_missing='error', sparse_output=False)[исходный код]

Создаёт одномерные базисы 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' вычисляется быстрее, но может замедлить последующие оцениватели.

handle_missing{‘error’, ‘zeros’}, по умолчанию=’error’

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

  • ‘error’ : вызывает ошибку, если во время fit присутствуют значения np.nan.
  • ‘zeros’ : кодирует сплайны для пропущенных значений значениями 0.

Обратите внимание, что handle_missing='zeros' отличается от сначала заполнения пропущенных значений нулями с последующим созданием базиса сплайнов. Во втором случае создаются базисные функции сплайнов с ненулевыми значениями для пропущенных данных, тогда как этот параметр просто задаёт нулевые значения всех базисных функций сплайнов для пропущенных данных.

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

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

Если задано значение True, возвращается разреженная матрица CSR, иначе возвращается массив.

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

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

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

n_features_in_int

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

feature_names_in_ndarray формы (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

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

Примечания

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

См. examples/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)[исходный код]

Вычисляет положения узлов сплайнов.

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

Данные.

yNone

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

sample_weightмассив формы (n_samples,), по умолчанию = None

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

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

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

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

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

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

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

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

yмассив формы (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_featuresмассив строк или 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_outndarray строковых объектов

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

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

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

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

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

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

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

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

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

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

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

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

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → SplineTransformer[исходный код]

Настраивает запрос на передачу метаданных методу fit.

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

Для каждого параметра доступны следующие варианты:

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

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

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

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

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

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

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

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)[исходный код]

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

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

Преобразуемые данные.

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

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

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

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

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

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

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

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

Оценка оценивателей для обнаружения выбросов

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

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

Spec-Zone.ru

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