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

如何获取scikit-learn ColumnTransformer的填充与归一化参数

获取ColumnTransformer中预处理组件的统计值

你可以通过train_mod.best_estimator_['preprocess'].transformers_定位到对应的预处理组件,再提取它们的内置属性来获取所需统计值,具体操作如下:

1. 获取分类特征SimpleImputer的众数

SimpleImputer拟合后,statistics_属性会存储每个分类特征的众数。你需要先找到对应分类预处理步骤的实例:

# 遍历transformers列表,匹配分类预处理步骤名称
for name, transformer, cols in train_mod.best_estimator_['preprocess'].transformers_:
    if name == 'cat_imputer':  # 替换为你实际的分类预处理步骤名称
        cat_imputer = transformer
        break

# 提取众数,可与列名对应成字典方便查看
cat_modes = cat_imputer.statistics_
cat_mode_map = dict(zip(cols, cat_modes))

2. 获取数值特征SimpleImputer的中位数

和分类特征逻辑一致,数值SimpleImputer的statistics_存储的是各特征的中位数:

# 遍历找到数值预处理步骤的SimpleImputer
for name, transformer, cols in train_mod.best_estimator_['preprocess'].transformers_:
    if name == 'num_imputer':  # 替换为你实际的数值预处理步骤名称
        num_imputer = transformer
        break

# 提取中位数并关联列名
num_medians = num_imputer.statistics_
num_median_map = dict(zip(cols, num_medians))

3. 获取MinMaxScaler的极值

MinMaxScaler拟合后会生成data_min_(各特征最小值)和data_max_(各特征最大值)两个属性:

# 遍历找到缩放步骤的MinMaxScaler实例
for name, transformer, cols in train_mod.best_estimator_['preprocess'].transformers_:
    if name == 'num_scaler':  # 替换为你实际的缩放步骤名称
        scaler = transformer
        break

# 提取极值并关联列名
scaler_mins = scaler.data_min_
scaler_maxs = scaler.data_max_
scaler_min_map = dict(zip(cols, scaler_mins))
scaler_max_map = dict(zip(cols, scaler_maxs))

注意:如果预处理是嵌套Pipeline的情况

如果你的数值/分类预处理是用Pipeline组合的(比如先填充再缩放),需要先从Pipeline中取出对应组件:

# 假设数值预处理是名为'num_pipeline'的Pipeline
for name, transformer, cols in train_mod.best_estimator_['preprocess'].transformers_:
    if name == 'num_pipeline':
        # 从Pipeline中取出SimpleImputer和MinMaxScaler
        num_imputer = transformer.named_steps['imputer']  # 替换为Pipeline中imputer的名称
        num_scaler = transformer.named_steps['scaler']    # 替换为Pipeline中scaler的名称
        break

# 后续提取统计值的逻辑和之前一致
num_medians = num_imputer.statistics_
scaler_mins = num_scaler.data_min_

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:00:00