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

StandardScaler提示缺失特征但对应列已存在的技术问题求助

解决模型预测时哑变量特征缺失的问题

问题重现

执行模型预测时出现特征缺失错误:

Feature names seen at fit time, yet now missing:
- Emplacement de la blessure_bras
- Emplacement de la blessure_dos

但检查DataFrame确认对应列确实存在:

0     0
1     0
2     0
3     0
4     0
5     1
6     0
7     0
8     0
9     0
10    0
11    1
12    0
13    0
14    0
15    0
16    0
Name: Emplacement de la blessure_bras, dtype: uint8

核心原因

问题出在训练阶段和预测阶段的哑变量生成逻辑不一致:

  • 若训练时用pd.get_dummies自动生成哑变量,当预测数据中某个分类类别未出现时,对应的哑变量列不会被创建,导致特征集合和训练时不匹配。
  • 即便当前看到列存在,也可能是后续数据处理中出现误操作(比如列名被修改、特征被过滤),或是生成哑变量的步骤未对齐训练时的规则。

解决方案

方案1:用Sklearn编码器统一处理(推荐)

放弃pd.get_dummies,改用ColumnTransformer+OneHotEncoder,训练时保存编码器,预测时复用,确保特征完全对齐:

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
import pandas as pd

# 定义原始分类特征列
categorical_cols = ["Emplacement de la blessure"]

# 构建转换器:仅对分类列做独热编码,其他列保持原样
ct = ColumnTransformer(
    transformers=[('onehot', OneHotEncoder(sparse_output=False), categorical_cols)],
    remainder='passthrough'
)

# 训练时拟合并转换数据
X_train_processed = ct.fit_transform(X_train)
# 可选:将转换后的数组转回DataFrame方便查看
X_train_df = pd.DataFrame(
    X_train_processed,
    columns=ct.get_feature_names_out()
)

# 预测时直接用训练好的转换器处理数据
X_test_processed = ct.transform(X_test)

方案2:用pd.get_dummies时强制对齐特征列

如果坚持使用pd.get_dummies,需在训练时保存所有哑变量列名,预测时补全缺失列并调整顺序:

# 训练阶段生成哑变量并保存列名
X_train_dummies = pd.get_dummies(X_train, columns=["Emplacement de la blessure"])
train_feature_cols = X_train_dummies.columns.tolist()

# 预测阶段生成哑变量
X_test_dummies = pd.get_dummies(X_test, columns=["Emplacement de la blessure"])

# 补全缺失的特征列,默认值设为0
for col in train_feature_cols:
    if col not in X_test_dummies.columns:
        X_test_dummies[col] = 0

# 调整列顺序和训练时完全一致
X_test_dummies = X_test_dummies[train_feature_cols]

方案3:排查数据处理流程

检查预测数据的处理步骤:

  • 是否有代码修改了列名(比如rename、字符串替换)?
  • 是否在生成哑变量后,不小心过滤了某些列?
  • 确认训练和预测时的pd.get_dummies参数完全一致(比如prefix、columns是否相同)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:55:03