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

使用defaultdict中的LabelEncoder时,如何获取LabelEncoder.classes_?

如何获取defaultdict中LabelEncoder的类别信息?

嘿,这个问题其实很直接!你用defaultdict(LabelEncoder)构建的label_dict里,每个键都是DataFrame的列名,对应的值是已经完成fit的LabelEncoder实例——所以直接通过列名访问对应实例的**classes_**属性就可以拿到该列的所有类别了。

举个具体的例子:
假设你的DataFrame有一列叫product_type,要获取这一列的训练类别,只需要写:

label_dict['product_type'].classes_

这会返回一个包含该列所有唯一类别的numpy数组。

如果想要批量查看所有列的类别,可以遍历这个defaultdict:

for column_name, encoder in label_dict.items():
    print(f"列 {column_name} 的训练类别: {encoder.classes_}")

另外,针对你提到的测试集新类别处理的需求,这里给个实用小技巧:拿到classes_后,你可以先判断测试集的样本是否属于训练过的类别,再做编码,比如把未知类别映射为一个特定值(比如-1):

import numpy as np

# 处理测试集的某一列
test_column = test_df['product_type']
encoder = label_dict['product_type']

# 将不在训练类别中的值映射为-1,其余正常编码
encoded_test_col = np.where(
    test_column.isin(encoder.classes_),
    encoder.transform(test_column),
    -1
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:15:34