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узлов добавляются перед первым узлом и столько же — после последнего.
- Если задано значение ‘uniform’,
- 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.
- ‘error’ : вызывает ошибку, если во время
- 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.
Примеры из галереи
© 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