2011-04-22 69 views
4

我想對我的數據使用交叉驗證器,但我得到0.0成功率,這是沒有意義的。pybrain交叉驗證方法的問題

我的數據由具有5個連續屬性和兩個可能類的樣本組成:「y」和「n」。

我的代碼:

net = pybrain.tools.shortcuts.buildNetwork(5, 8, 1) 
trainer = BackpropTrainer(net, ds) 
evaluation = ModuleValidator.classificationPerformance(trainer.module, ds) 
validator = CrossValidator(trainer=trainer, dataset=trainer.ds, n_folds=5, valfunc=evaluation) 
print(validator.validate()) 

當我在做,像這樣

print(trainer.train()) 

我得到一個合理的誤差率經常性培訓,所以我猜,這意味着數據集和網絡沒問題,問題在於交叉驗證器。

任何想法?

更新:

我看着在交叉驗證碼,發現我的網絡輸出連續的值,而不是0/1的要求。我猜這些是每個班級的概率。當模型在交叉驗證方法中使用時,它不會說明這一點,這意味着所有的答案都被視爲flase,我得到0正確的答案。如何添加一個查看連續值的圖層,並根據哪個更大來返回0或1?文件不清楚。

+0

使用你有沒有解決這個問題? – displayname 2015-11-17 15:08:29

+0

我想我放棄了這個庫的使用。 – Uri 2015-11-17 16:44:21

+0

我想我開始明白爲什麼..任何替代方案的建議? ^^ – displayname 2015-11-17 16:55:13

回答

-3

我神經網絡的工作壓力太大,我建議你用Python綁定檢查FANN library,它的更好,更容易比pybrain