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

使用pd.from_dummies还原OHE目标变量时触发ValueError问题求助

问题:独热编码还原触发ValueError,替代方案是否可行?

我正在参与Kaggle Playground系列竞赛,用简单神经网络解决二分类问题。通过独热编码(OHE)将目标变量Personality转换为1和0:

train2 = pd.get_dummies(train, columns=['Personality'], drop_first=True, dtype=int)

随后用tensorflow-keras训练模型,输出为概率值,因此用以下代码取整:

pred = np.round(pred)

接着将结果转换为int64类型并转为DataFrame:

df = pd.DataFrame(pred)
pred_df = df.astype('int64')
pred_df.head()

但尝试将预测值还原为Introvert和Extrovert时,执行:

final =  pd.from_dummies(pred_df)

触发错误,完整错误信息如下:

This is the full error message ->
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_635/341381991.py in <cell line: 0>()
      1 #Revert
----> 2 final =  pd.from_dummies(pred_df)

/usr/local/lib/python3.11/dist-packages/pandas/core/reshape/encoding.py in from_dummies(data, sep, default_category)
    550                 cats.append(default_category[prefix])
    551             else:
--> 552                 raise ValueError(
    553                     "Dummy DataFrame contains unassigned value(s); "
    554                     f"First instance in row: {assigned.idxmin()}"

ValueError: Dummy DataFrame contains unassigned value(s); First instance in row: 0

不确定问题所在及解决方法,附上全部代码。如果无法还原,使用map函数(如1对应Introvert)是否可行?


问题原因

pd.from_dummies()需要带有原类别前缀的列名才能识别类别映射关系,而你的pred_df列名是默认数字(如0),没有关联原Personality的类别信息;另外,你用drop_first=True编码时已丢弃一个类别,from_dummies无法自动识别被丢弃的类别,因此触发错误。

解决方法

方法1:直接用map函数(最简便)

二分类场景下,直接通过字典映射即可完成还原,无需依赖from_dummies:

# 确认原编码规则:比如train2中Personality_Introvert=1对应Introvert,0对应Extrovert
pred_df['Personality'] = pred_df[0].map({1: 'Introvert', 0: 'Extrovert'})

方法2:修正列名后用from_dummies

如果一定要用from_dummies,需先给pred_df设置原独热编码的列名,并指定被丢弃的默认类别:

# 重命名列,匹配原独热编码后的列名
pred_df.columns = ['Personality_Introvert']
# 还原时指定被丢弃的类别
final = pd.from_dummies(pred_df, default_category={'Personality': 'Extrovert'})

总结

二分类场景下,map函数是最直接高效的方案,既避免了from_dummies的列名依赖问题,也能快速完成类别还原。

内容的提问来源于stack exchange,提问作者Karis C. Anoruo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:16