我有一个带有固定种子的随机状态,用于使预测结果可复制:
rng = np.random.RandomState(101)
len(finalTestSentences) = 500
我正在尝试使用此种子使用唯一的可能性列表来生成随机类别变量的数组。这是一个示例(我set
在训练标签上使用了生成的唯一标签):
unique_train_labels = set([u'bla', u'blee', u'blu', u'ma'])
然后,我做:
categorical_random = np.array[rng.choice(unique_train_labels, len(finalTestSentences))]
但我得到:
categorical_random = np.array[rng.choice(unique_train_labels, len(finalTestSentences))]
File "mtrand.pyx", line 1072, in mtrand.RandomState.choice (numpy/random/mtrand/mtrand.c:11545)
ValueError: a must be 1-dimensional or an integer
请注意,这是从这个解决办法在这里
出了什么问题,我如何实现我的目标?
如果看一下的定义np.random.choice
,您将看到a
人口被转换为numpy数组
a = np.array(a, copy=False)
如果a为集合,则转换会有所不同。例如,np.array([1, 2, 3])
给出一个包含三个元素的数组:array([1, 2, 3])
但是np.array({1, 2, 3})
给出一个包含单个元素的数组,其中元素是一个集合。由于尺寸问题,numpy引发ValueError。
为避免这种情况,您可以使用以下方法将集合转换为列表:
rng.choice(list(unique_train_labels), len(finalTestSentences))
或者直接使用np.unique获得唯一标签:
rng.choice(np.unique([u'bla', u'blee', u'blu', u'ma']), len(finalTestSentences))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句