python - 在管道中使用缩放时,如何将缩放应用于选定的功能?
问题描述
我有以下数据集(这里只显示前五行):
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
。现在我想扩展distance
和angle
使用StandardScaler
.
在 Python 中编写管道的一般结构如下:
from sklearn.pipeline import make_pipeline
scaled_log_reg = make_pipeline(StandardScaler(), LogisticRegression())
但这会缩放整个数据集,我只想缩小distance
和angle
特征。在管道中应用缩放时,如何实现对特定特征执行缩放的概念。
解决方案
您可以使用ColumnTransformer:
scaler = ColumnTransformer([('scaler (or any name)',
StandardScaler(),
['distance', 'angle']
)], remainder='passthrough')
推荐阅读
- python-3.x - 是否可以使用没有发件人(或 noreply)的 exchangelib 发送电子邮件?
- python - 声明方法参数类型列表的最佳方式
- pandas - 将非科学浮点表示设置为 pandas 的默认浮点格式
- r - R包安装目录问题
- angular - 使用 Angular-CLI 8 生成的库可以安全地用于 Angular 2、4、5、6 或 7 应用程序吗?
- node.js - /forgot 路由响应的好方法是什么?
- visual-studio-code - 如何在不同的进程作业中运行多个 VSCode 实例?
- r - 对 r 中的一些特定变量值求和
- c# - C# 代码适用于本地构建,但不适用于实时生产构建
- angular - 在路线 Angular 7 上提供文件