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

如何对Sklearn LabelBinarizer的单个编码值执行逆变换?

LabelBinarizer逆变换单个样本报错的解决方法

背景代码与问题

首先用LabelBinarizer完成数据编码:

reviewerLe = LabelBinarizer()
reviewerIDs = reviewerLe.fit_transform(df['reviewerID'])

查看单个样本的输出和形状:

print(reviewerIDs[1])
reviewerIDs[1].shape

输出结果:

[0 0 0 ... 0 0 0]
(4975,)

尝试对单个样本执行逆变换时:

reviewerLe.inverse_transform(reviewerIDs[1])

触发错误:

axis 1 is out of bounds for array of dimension 1

官方文档要求

inverse_transform(Y, threshold=None)
Y{ndarray, sparse matrix} of shape (n_samples, n_classes)

Target values. All sparse matrices are converted to CSR before inverse transformation.

解决方案

确实需要将一维数组重塑为**(1, 4975)**的二维形状,因为inverse_transform要求输入必须是「样本数×类别数」的二维结构,而reviewerIDs[1]是一维数组(仅代表单个样本的类别编码)。

以下是几种可行的重塑方式:

  • 方法1:使用reshape
# 重塑为(1, 4975),-1自动匹配剩余维度
single_sample = reviewerIDs[1].reshape(1, -1)
reviewerLe.inverse_transform(single_sample)
  • 方法2:使用np.expand_dims
import numpy as np
# 在第0轴添加维度,将一维转为二维
single_sample = np.expand_dims(reviewerIDs[1], axis=0)
reviewerLe.inverse_transform(single_sample)
  • 批量处理少量样本
    如果要处理多个样本(比如前3个),直接切片即可,切片结果本身就是二维数组:
reviewerLe.inverse_transform(reviewerIDs[:3])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:53:23