我测试了pybrain以下的基本分类教程这里和不同的看法上也有一些更现实的数据在这里.但是在应用带有错误的trndata._convertToOneOfMany()时收到此错误:
AttributeError: 'SupervisedDataSet' object has no attribute '_convertToOneOfMany
Run Code Online (Sandbox Code Playgroud)
数据集是作为classification.ClassificationDataSet对象创建的,但是调用splitWithProportion似乎改变了它的supervised.SupervisedDataSet对象,所以对于Python来说这个错误似乎并不像supervised.SupervisedDataSet没有那个方法那样令人惊讶, classification.ClassificationDataSet呢.代码在这里.
然而,在这么多教程中使用相同的确切代码我觉得我必须遗漏一些东西,因为很多其他人都有它的工作.我已经看过github上代码库的变化,这个函数没有什么,我也试过在Python 3和2.7下运行,但没有区别.如果有人有任何指示让我回到正确的道路上,那将非常感激.
#flatten the 64x64 data in to one dimensional 4096
ds = ClassificationDataSet(4096, 1 , nb_classes=40)
for k in xrange(len(X)): #length of X is 400
ds.addSample(np.ravel(X[k]),y[k])
# a new sample consisting of input and target
print(type(ds))
tstdata, trndata = ds.splitWithProportion( 0.25 )
print(type(trndata))
trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
Run Code Online (Sandbox Code Playgroud)