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

关于OneHotEncoder输出[1.,0.,0.,1.,0.,0.,1.,0.,0.]的困惑咨询

搞懂sklearn OneHotEncoder的输出结果

嘿,我来帮你拆解这个让人困惑的输出,看完你就秒懂啦!

首先先看你得到的enc.n_values_ = array([2, 3, 4]),这个数组的每个数字对应你输入数据里每个特征的唯一类别数量:

  • 第一个特征(输入的第一列:0, 1, 0, 1):有2个唯一值{0,1},所以独热编码会占2个位置
  • 第二个特征(输入的第二列:0, 1, 2, 0):有3个唯一值{0,1,2},编码占3个位置
  • 第三个特征(输入的第三列:3, 0, 1, 2):有4个唯一值{0,1,2,3},编码占4个位置

把这三个编码长度加起来:2+3+4=9,正好和你拿到的输出数组长度一致!

接下来我们把输出[1., 0., 0., 1., 0., 0., 1., 0., 0.]拆成对应三个特征的部分,逐个解析:

  1. 第一个特征的编码(前2个元素):[1., 0.]
    OneHotEncoder会自动把每个特征的类别按从小到大排序,第一个特征的类别是0和1,所以编码规则是:

    • 特征值为0 → 编码是[1, 0](第一个位置为1,其余为0)
    • 特征值为1 → 编码是[0, 1](第二个位置为1,其余为0)
      这里的[1,0]就说明第一个特征的取值是0
  2. 第二个特征的编码(中间3个元素):[0., 1., 0.]
    第二个特征的类别排序后是0,1,2,对应编码规则:

    • 值0 → [1,0,0],值1 → [0,1,0],值2 → [0,0,1]
      这个部分的[0,1,0]说明第二个特征的取值是1
  3. 第三个特征的编码(最后4个元素):[0., 1., 0., 0.]
    第三个特征的类别排序后是0,1,2,3,编码规则是:

    • 值0 → [1,0,0,0],值1 → [0,1,0,0],值2 → [0,0,1,0],值3 → [0,0,0,1]
      这里的[0,1,0,0]说明第三个特征的取值是1

简单来说,这个输出对应的输入样本应该是[[0, 1, 1]],把三个特征的独热编码按顺序拼接起来,就得到了你看到的9位数组~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:42:44