【发布时间】:2015-12-26 18:26:53
【问题描述】:
我正在尝试使用 python 将我的分类数据转换为一个热向量,最好使用 numpy 或 theano。我不想使用 sklearn(我无法安装它)。
我的数据是这样的:
data=[
[ 0., 2., 2., 0., 2., 0., 1.],
[ 2., 1., 2., 2., 2., 0., 2.],
[ 0., 0., 2., 0., 2., 2., 2.],
[ 0., 2., 1., 0., 1., 2., 2.],
[ 0., 2., 2., 0., 0., 0., 2.],
[ 0., 2., 0., 0., 2., 0., 2.],
[ 0., 2., 2., 0., 2., 0., 1.],
[ 1., 2., 2., 1., 2., 1., 0.],
]
我的数据有 7 列,每列的值可以是 0、1 或 2。在操作结束时,我想要一个热向量,它有 3^7-1 个零和一个 1 值。
我尝试使用
theano.tensor.extra_ops.to_one_hot(y, nb_class, dtype=None)
但没用,我不确定它是否适合这项任务。
我在互联网上看到的大多数示例仅适用于单列。
【问题讨论】:
-
这是一种奇怪的单热编码方式。通常每一列代表一个分类特征。在这种情况下,您将拥有 7 * 3 个单热编码值。您要为每个列组合创建一个值?
-
@DavidMaust,是的,我试图用一个热向量表示每一行,每一行可以采用 3^7 个不同的值。
标签: python numpy machine-learning theano