PyBrain的ClassificationDataSet正在创建额外的样本

时间:2015-08-15 16:52:21

标签: python pybrain

我使用PyBrain库的ClassificationDataSet类遇到了非常奇怪的行为。它似乎为数据添加了额外的样本,我无法理解为什么!

以下是代码:

data = [[2, 4, 1],
        [3, 3, 0],
        [1, 2, 1]]
targets = [3, 1, 2]

training_ds = ClassificationDataSet(len(data[0]), nb_classes=3, class_labels=['1', '2', '3'])
for i in range(len(data)):
    training_ds.addSample(data[i], targets[i])

在第一次调用addSample时,它会向包含全0的输入数据添加一个额外的样本,并添加目标值0.在第二次迭代中,数据的大小正确,第三次迭代它以看似随机的顺序复制数据,使其成为(6,3)数据集。有谁知道它为什么会这样做?

我正在使用最新版本的PyBrain。

1 个答案:

答案 0 :(得分:0)


我有类似的问题 我的问题在于使用 ds.data ["输入"] 而不是 ds.getField("输入")
下一个代码显示我的问题

ds.AddSample([2, 4, 1], 1)
print(ds.data["input"])
>>> [[2, 4, 1], [0, 0, 0]]

这是正确的代码

ds.AddSample([2, 4, 1], 1)
print(ds.getField("input"))
>>> [[2, 4, 1]]

也许这会有所帮助。