【问题标题】:PyBrain's ClassificationDataSet is creating extra samplesPyBrain 的 ClassificationDataSet 正在创建额外的样本
【发布时间】:2015-08-15 16:52:21
【问题描述】:

我在使用 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。

【问题讨论】:

    标签: python pybrain


    【解决方案1】:


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

    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]]
    

    也许这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多