我正在尝试使用
以下是代码:
代替
sklearn.preprocessing.LabelBinarizer()
来创建仅具有两列标签的独热编码,也就是说,我只想对两组对象进行分类。在这种情况下,当我使用fit(range(0,2))
时,它只返回一个一维数组,而不是2x1。虽然这也没问题,但当我想将其用于Tensorflow
时,形状应该真正为(2,1),以保持维度一致性。请指导如何解决。以下是代码:
from sklearn import preprocessing
lb = preprocessing.LabelBinarizer()
lb.fit(range(0, 3))
当调用 lb.transform([1, 0])
时,结果如下:
[[0 1 0]
[1 0 0]]
如果我们将3变为2,即lb.fit(range(0, 2))
,结果将会是
[[1]
[0]]
代替
[[0 1]
[1 0]]
这将会在那些一直使用n
维数组的算法中产生问题。有没有什么方法可以解决这个问题呢?
lb.fit()
不返回任何内容。 - Eskappprint(lb.transform([1, 0]))
- HamidReza Mirkhani二进制目标转换为列向量
(https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html),您可以从列向量结果构建所需的数组,在二维情况下。如果模糊不清,我会尝试写出答案。 - Eskappn=2
时,我必须编写另一个自定义方法。 - HamidReza Mirkhani