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количество узлов добавляется перед первым узлом, то же самое после последнего узла.
- Если ‘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'порядок быстрее вычисляется, но может замедлить последующие оценщики. - 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 и maxX.
- Возвращает:
-
- 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.
Примеры из галереи
© 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