【问题标题】:scikit-learn could not create one hot for a tablescikit-learn 无法为表创建一个热点
【发布时间】:2021-04-04 02:41:34
【问题描述】:

我有一个数据集,每列都有共同的类别。

dataset = [['aaaa', 'bbbb'], ['bbbb', 'ffff'], ['aaaa', 'gggg']]
categories = ['aaaa', 'bbbb', 'ffff', 'gggg']

我希望输出必须是:

output = [[1, 1, 0, 0], [0, 1, 1, 0], [1, 0, 0, 1]]

代码:

one_hot_encoder = OneHotEncoder(categories=['aaaa', 'bbbb', 'ffff', 'gggg'])
return one_hot_encoder.fit_transform([['aaaa', 'bbbb'], ['bbbb', 'ffff'], ['aaaa', 'gggg']])

但是告诉我这个错误:

形状不匹配:如果类别是一个数组,它必须是形状 (n_features,)。

【问题讨论】:

    标签: python scikit-learn one-hot-encoding


    【解决方案1】:

    您想要的输出不是 one-hot 编码; “one-hot”表示每行一个 1(“hot”)。您可能想改用MultiLabelBinarizer

    要解释您的错误:Sklearn认为您的输入有两个特征(数组的两列),如果您在categories到编码器中,则必须是每个列的列表: em>,类别列表。

    【讨论】:

      猜你喜欢
      • 2012-11-24
      • 2012-07-12
      • 2022-01-17
      • 2013-01-29
      • 2015-12-09
      • 2018-05-15
      • 2014-10-23
      • 2018-12-21
      • 1970-01-01
      相关资源
      最近更新 更多