我有以下数据集(这里只展示前五行):
x0_Open Play x1_Foot x1_Head distance angle0 1 1 0 26.213579 14.2133531 1 1 0 17.011103 20.4248012 1 1 0 24.033554 13.1633703 1 1 0 18.165922 21.5411464 1 1 0 24.563994 16.868598
这里,前三个特征是OneHotEncoder
的结果。现在我想使用StandardScaler
来缩放distance
和angle
特征。
在Python中编写管道的通用结构如下:
from sklearn.pipeline import make_pipelinescaled_log_reg = make_pipeline(StandardScaler(), LogisticRegression())
但这会缩放整个数据集,我只想缩放distance
和angle
特征。在管道中应用缩放时,如何实现只对特定特征进行缩放的概念呢?
回答:
你可以使用ColumnTransformer:
scaler = ColumnTransformer([('scaler (or any name)', StandardScaler(), ['distance', 'angle'] )], remainder='passthrough')