本文简要介绍python语言中 sklearn.preprocessing.SplineTransformer
的用法。
用法:
class sklearn.preprocessing.SplineTransformer(n_knots=5, degree=3, *, knots='uniform', extrapolation='constant', include_bias=True, order='C')
为特征生成单变量 B-spline 基。
为每个特征生成一个由多项式阶=`degree`的
n_splines=n_knots + degree - 1
(n_knots - 1
forextrapolation="periodic"
)样条基函数(B-splines)组成的新特征矩阵。在用户指南中阅读更多信息。
- n_knots:整数,默认=5
如果
knots
等于 {‘uniform’, ‘quantile’} 之一,则样条线的结数。必须大于或等于 2。如果knots
类似于数组,则忽略。- degree:整数,默认=3
样条基的多项式次数。必须是非负整数。
- knots:{‘uniform’, ‘quantile’} 或形状类似数组 (n_knots, n_features),默认=‘uniform’
设置结位置,使得第一个结 <= 特征 <= 最后一个结。
- 如果‘uniform’、
n_knots
节点数从特征的最小值到最大值均匀分布。 - 如果‘quantile’,它们沿着特征的分位数均匀分布。
- 如果给出类似数组,它直接指定排序的结位置,包括边界结。请注意,在内部,
degree
结点数量添加在第一个结点之前,最后一个结点之后添加相同的数量。
- 如果‘uniform’、
- extrapolation:{‘error’, ‘constant’, ‘linear’, ‘continue’, ‘periodic’},默认='常量'
如果 ‘error’,训练特征的最小值和最大值之外的值会引发
ValueError
。如果‘constant’,则将特征的最小值和最大值处的样条值用作常数外推。如果‘linear’,使用线性外插。如果‘continue’,样条线按原样外推,即scipy.interpolate.BSpline
中的选项extrapolate=True
。如果‘periodic’,则使用周期等于第一个结和最后一个结之间距离的周期样条。周期样条在第一个和最后一个结处强制执行相等的函数值和导数。例如,这可以避免在从自然周期 “day-of-year” 输入特征派生的样条特征中引入在 12 月 31 日和 1 月 1 日之间的任意跳跃。在这种情况下,建议手动设置节点值来控制周期。- include_bias:布尔,默认=真
如果为 True(默认),则删除特征数据范围内的最后一个样条元素。由于B-splines 对每个数据点的样条基函数求和为一个,它们隐含地包含一个偏差项,即一列。它充当线性模型中的截距项。
- order:{‘C’,‘F’},默认=‘C’
输出数组的顺序。 “F”阶计算速度更快,但可能会减慢后续估计器的速度。
- bsplines_:形状列表(n_features,)
BSplines 对象列表,每个特征一个。
- n_features_in_:int
输入特征的总数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。- n_features_out_:int
输出特征的总数,计算为
n_features * n_splines
,其中n_splines
是 B-splines 的基元素数,n_knots + degree - 1
用于非周期性样条,n_knots - 1
用于周期性样条。如果include_bias=False
,那么它只是n_features * (n_splines - 1)
。
参数:
属性:
注意:
高度数和大量节点会导致过度拟合。
参看例子/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 ]])
相关用法
- Python sklearn SparsePCA用法及代码示例
- Python sklearn SpectralEmbedding用法及代码示例
- Python sklearn SpectralClustering用法及代码示例
- Python sklearn SpectralBiclustering用法及代码示例
- Python sklearn SparseCoder用法及代码示例
- Python sklearn SparseRandomProjection用法及代码示例
- Python sklearn SpectralCoclustering用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
- Python sklearn SelfTrainingClassifier用法及代码示例
- Python sklearn SelectFromModel用法及代码示例
- Python sklearn SelectFpr用法及代码示例
- Python sklearn ShuffleSplit用法及代码示例
- Python sklearn StratifiedGroupKFold用法及代码示例
- Python sklearn Sum用法及代码示例
- Python sklearn SVR用法及代码示例
- Python sklearn SelectKBest用法及代码示例
- Python sklearn SimpleImputer用法及代码示例
- Python sklearn SGDOneClassSVM用法及代码示例
- Python sklearn StratifiedShuffleSplit用法及代码示例
- Python sklearn SVC用法及代码示例
- Python sklearn SGDRegressor用法及代码示例
- Python sklearn SequentialFeatureSelector用法及代码示例
- Python sklearn SelectPercentile用法及代码示例
- Python sklearn SkewedChi2Sampler用法及代码示例
- Python sklearn SGDClassifier用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.preprocessing.SplineTransformer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。