首页 > 解决方案 > 在管道中使用缩放时,如何将缩放应用于选定的功能?

问题描述

我有以下数据集(这里只显示前五行):

     x0_Open Play   x1_Foot x1_Head  distance     angle
0        1             1       0     26.213579  14.213353
1        1             1       0     17.011103  20.424801
2        1             1       0     24.033554  13.163370
3        1             1       0     18.165922  21.541146
4        1             1       0     24.563994  16.868598

在这里,前三个特征是 的结果OneHotEncoder。现在我想扩展distanceangle使用StandardScaler.

在 Python 中编写管道的一般结构如下:

from sklearn.pipeline import make_pipeline

scaled_log_reg = make_pipeline(StandardScaler(), LogisticRegression())

但这会缩放整个数据集,我只想缩小distanceangle特征。在管道中应用缩放时,如何实现对特定特征执行缩放的概念。

标签: pythonmachine-learningscikit-learn

解决方案


您可以使用ColumnTransformer

scaler = ColumnTransformer([('scaler (or any name)', 
                              StandardScaler(),
                             ['distance', 'angle']
                            )], remainder='passthrough')

推荐阅读