SplineTransformer#
- class sklearn.preprocessing.SplineTransformer(n_knots=5, degree=3, *, knots='uniform', extrapolation='constant', include_bias=True, order='C', sparse_output=False)[源代码]#
为特征生成一元B样条基。
Generate a new feature matrix consisting of
n_splines=n_knots + degree - 1
(n_knots - 1
forextrapolation="periodic"
) spline basis functions (B-splines) of polynomial order=`degree` for each feature.要了解有关SplineTransformer类的更多信息,请访问: 与时间相关的特征工程
阅读更多的 User Guide .
Added in version 1.0.
- 参数:
- n_knotsint,默认=5
样条线的节数如果
knots
等于“均匀”、“分位数”中的一个。必须大于或等于2。如果被忽视knots
是类似阵列的。- degreeint,默认=3
样条基的多项次数。必须是非负整数。
- knots“均匀”、“分位数”}或类似阵列的形状 (n_knots,n_features),默认=' uniform '
设置结位置,使第一个结<=特征<=最后一个结。
如果“制服”,
n_knots
结的数量从特征的最小值到最大值均匀分布。如果是“分位数”,则它们沿着特征的分位数均匀分布。
如果给定一个类数组,它直接指定包括边界节点在内的已排序节点位置。请注意,在内部,
degree
在第一个结之前添加结的数量,在最后一个结之后添加结的数量相同。
- extrapolation“错误”、“常数”、“线性”、“继续”、“ 默认='不变'
如果“错误”,训练功能的最小值和最大值之外的值将引发
ValueError
.如果“恒定”,则将特征最小和最大值处的样条线值用作恒定外推。如果“线性”,则使用线性外推。如果“继续”,则按原样外推样条线,即选项extrapolate=True
在scipy.interpolate.BSpline
.如果“√”,则使用周期等于第一个结和最后一个结之间距离的周期样条线。周期样条在第一个结和最后一个结处强制相等的函数值和求导。例如,这使得可以避免在从自然周期的“一年中的一天”输入特征衍生的样条线特征中引入12月31日和1月1日之间的任意跳跃。在这种情况下,建议手动设置结值来控制周期。- include_bias布尔,默认=True
如果为False,则删除要素数据范围内的最后一个样条线元素。由于B样条在每个数据点的样条基函数上总和为一,因此它们隐含地包括一个偏差项,即一列一。它充当线性模型中的拦截项。
- order' C ',',默认=' C '
密集情况下输出数组的顺序。
'F'
顺序的计算速度更快,但可能会减慢后续估计的速度。- sparse_output布尔,默认=假
如果设置为True,将返回稀疏CSR矩阵,否则将返回数组。此选项仅适用于
scipy>=1.8
.Added in version 1.2.
- 属性:
- bsplines_形状列表(n_features,)
B样条线对象列表,每个要素一个。
- n_features_in_int
输入功能的总数。
- feature_names_in_ :nd形状数组 (
n_features_in_
,)nd数组形状( Names of features seen during fit. Defined only when
X
has feature names that are all strings.Added in version 1.0.
- n_features_out_int
The total number of output features, which is computed as
n_features * n_splines
, wheren_splines
is the number of bases elements of the B-splines,n_knots + degree - 1
for non-periodic splines andn_knots - 1
for periodic ones. Ifinclude_bias=False
, then it is onlyn_features * (n_splines - 1)
.
参见
KBinsDiscretizer
将连续数据打包到间隔中的Transformer器。
PolynomialFeatures
生成多项和交互特征的Transformer。
注意到
高度和大量的结可能会导致过度贴合。
看到 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)
数据。
- y没有一
忽视
- sample_weight形状类似数组(n_samples,),默认=无
每个样本的单独重量。用于计算分位数,如果
knots="quantile"
.为knots="uniform"
,忽略零加权观察来查找的最小值和最大值X
.
- 返回:
- self对象
已安装Transformer。
- fit_transform(X, y=None, **fit_params)[源代码]#
适应数据,然后对其进行转换。
适合变压器
X
和y
具有可选参数fit_params
并返回的转换版本X
.- 参数:
- X形状类似阵列(n_samples,n_features)
输入样本。
- y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无
目标值(无监督转换)。
- **fit_paramsdict
其他适合参数。
- 返回:
- X_newndray形状数组(n_samples,n_features_new)
变形的数组。
- get_feature_names_out(input_features=None)[源代码]#
获取用于转换的输出要素名称。
- 参数:
- input_features字符串或无的类数组,默认=无
输入功能。
如果
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字符串对象的nd数组
转换的功能名称。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
- 返回:
- routingMetadataRequest
A
MetadataRequest
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') SplineTransformer [源代码]#
请求元数据传递给
fit
法请注意,此方法仅适用于以下情况
enable_metadata_routing=True
(见sklearn.set_config
).请参阅 User Guide 关于路由机制如何工作。The options for each parameter are:
True
:元数据被请求并传递给fit
如果提供的话。如果未提供元数据,则会忽略请求。False
:未请求元数据,元估计器不会将其传递给fit
.None
:不请求元数据,如果用户提供元估计器,则元估计器将引发错误。str
:元数据应通过此给定别名而不是原始名称传递给元估计器。
默认 (
sklearn.utils.metadata_routing.UNCHANGED
)保留现有请求。这允许您更改某些参数的请求,而不是其他参数。Added in version 1.3.
备注
只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在
Pipeline
.否则就没有效果了。- 参数:
- sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged
元数据路由
sample_weight
参数fit
.
- 返回:
- self对象
更新的对象。
- set_output(*, transform=None)[源代码]#
设置输出容器。
看到 介绍 set_output API 了解如何使用API的示例。
- 参数:
- transform{“默认”,“pandas”,“polars”},默认=无
配置输出
transform
和fit_transform
."default"
:Transformer的默认输出格式"pandas"
:DataFrame输出"polars"
:两极输出None
:转换配置不变
Added in version 1.4:
"polars"
添加了选项。
- 返回:
- self估计器实例
估计实例。