You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从含ColumnTransformer与SelectKBest的sklearn Pipeline中提取筛选后特征名

解决方法

你已经拿到了两个核心匹配依据:

  1. 自定义get_feature_names函数返回的features列表,严格按照ColumnTransformer的特征输出顺序排列,列表下标和preprocessor.transform(X)返回的特征矩阵列索引完全一一对应
  2. SelectKBest.get_support(indices=True)返回的mask数组,每个元素就是被保留特征在SelectKBest输入矩阵(也就是preprocessor的输出矩阵)中的列索引

直接通过索引匹配即可得到最终选中的转换后特征名,示例代码如下:

# 方法1:列表推导式(适用于features为普通Python列表)
selected_features = [features[idx] for idx in mask]

# 方法2:numpy索引(写法更简洁)
import numpy as np
selected_features = np.array(features)[mask]

结果验证

输出len(selected_features)可以看到长度为60,和你设置的SelectKBest(k=60)参数一致,且每个元素都是经过独热编码、标准化等转换后的特征名,符合你的需求。

内容的提问来源于stack exchange,提问作者Maths12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:48:02