如果输入为零,我想制作一个看起来像这样的数组:
[1,0,0,0,0,0,0,0,0,0]
如果输入为5:
[0,0,0,0,0,1,0,0,0,0]
对于以上内容,我写道:
np.put(np.zeros(10),5,1)
但它没有用。
有什么方法可以在一线实现?
通常,当您想在机器学习中使用单编码进行分类时,就会有一组索引。
import numpy as np
nb_classes = 6
targets = np.array([[2, 3, 4, 0]]).reshape(-1)
one_hot_targets = np.eye(nb_classes)[targets]
在one_hot_targets
现在
array([[[ 0., 0., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 1., 0.],
[ 1., 0., 0., 0., 0., 0.]]])
使用.reshape(-1)
可以确保您使用正确的标签格式(也可能使用[[2], [3], [4], [0]]
)。该-1
值是一个特殊值,表示“将所有剩余的物料放入此维”。因为只有一个,所以它使阵列变平。
def get_one_hot(targets, nb_classes):
res = np.eye(nb_classes)[np.array(targets).reshape(-1)]
return res.reshape(list(targets.shape)+[nb_classes])
您可以使用mpu.ml.indices2one_hot。经过测试且易于使用:
import mpu.ml
one_hot = mpu.ml.indices2one_hot([1, 3, 0], nb_classes=5)
我有一个大数据集,我计划对其进行逻辑回归。它有很多分类变量,每一个都有成千上万的特征,我计划在这些特征上使用一个热编码。我将需要处理小批量的数据。我的问题是如何确保一个热编码在第一次运行时看到每个分类变量的所有功能?
我试图在Iris数据集中的目标列(“物种”)上使用一个热编码器。 但我得到了以下错误: ValueError:预期的2D数组,得到1D数组代替: 使用数组或数组重塑数据的形状。如果数据具有单个要素或阵列,则重塑(-1,1)。如果(1,-1)包含单个样本,则重塑其形状。 我在谷歌上搜索了这个问题,发现大多数scikit学习估计器都需要2D数组,而不是一维数组。 同时,我还发现,我们可以尝试传递带有索
问题内容: 张量流是否具有类似于scikit Learn的一种用于处理分类数据的热编码器?使用tf.string的占位符会表现为分类数据吗? 我意识到我可以在将数据发送到tensorflow之前对其进行手动预处理,但是将其内置非常方便。 问题答案: 从TensorFlow 0.8开始,现在有一个原生的一站式操作,可以将一组稀疏标签转换为密集的一站式表示形式。这是的补充,在某些情况下,您可以使您直接
我在列表中有一个列名称,我想对列表中的列中的值进行热编码。我想从数据集中对分类变量进行编码。我尝试了几个过程,但它给我带来了一个错误 它抛出的错误 回溯(最后一次调用):文件“preprocessing.py”,第83行,trainig_set_ed[col]=clfs[col].fit_transform(trainig_set_ed[col])文件“/root/.local/lib/pytho
如果我们不确定分类特征的性质,比如它们是名词性的还是序数的,我们应该使用哪种编码?顺序编码还是一个热编码?关于这个话题有没有明确的规定? 我看到很多人对没有方向的分类数据使用顺序编码。假设一个频率表: 有很多人更喜欢在这个专栏上做顺序编码。我非常想用一热编码。我对此的看法是,做序数编码会给这些颜色分配一些有序的数字,这意味着一个排名。而且没有排名第一。换句话说,我的模型不应该认为color_whi
问题内容: 我试图安装有,但我在损失的如何文件需要被写入。 当安装过程之后安装完成且没有错误,但没有关于增加从1(由环境变量OMP_NUM_THREADS控制)使用OpenBLAS线程数性能下降。 我不确定OpenBLAS集成是否完美。任何人都可以提供文件来实现相同目的。 PS:OpenBLAS与基于Python的Theano等其他工具包的集成,可在同一台计算机上通过增加线程数显着提高性能。 问题