本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。