pybrainでマッチ箱をやってみる
- 作者: 森川幸人
- 出版社/メーカー: 森川幸人
- 発売日: 2014/01/05
- メディア: Kindle版
- この商品を含むブログ (13件) を見る
遠足のお菓子問題をpybrainで解いてみた。
#!/usr/bin/python
# -*- coding: utf-8 -*-from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised import BackpropTrainer# machi bako no nn
NN = buildNetwork(3, 1)
#buildNetwork(入力層, 出力層)DataSet = SupervisedDataSet(3, 1)
#SupervisedDataSet(入力データ, 出力データ)
DataSet.addSample( (1, 1, 1), (0)) #ngの買い方
DataSet.addSample( (1, 1, 0), (0)) #ngの買い方
DataSet.addSample( (1, 0, 1), (1)) #okの買い方
DataSet.addSample( (0, 1, 1), (1)) #okの買い方
DataSet.addSample( (1, 0, 0), (1)) #okの買い方trainer = BackpropTrainer(NN, DataSet, verbose = True)
for i in range(0,100):
trainer.train()TestSet = SupervisedDataSet(3, 1)
TestSet.addSample( (0, 1, 0),(1)) #okの買い方、合ってる
TestSet.addSample( (0, 0, 1),(1)) #okの買い方、合ってる
TestSet.addSample( (0, 0, 0),(1)) #okの買い方、合ってるtrainer.testOnData(TestSet, verbose = True)
テスト部分の出力
Testing on data:
('out: ', '[-0.146]')
('correct:', '[1 ]')
error: 0.65715369
('out: ', '[0.909 ]')
('correct:', '[1 ]')
error: 0.00411796
('out: ', '[0.359 ]')
('correct:', '[1 ]')
うーむ、、、、あんまり合ってないってことかな。
学習を6パターン、1000回にするとほぼoutは0.5か1.5になる、、、、(1か0に近づかなければいけないのに?)
Testing on data:
('out: ', '[0.5 ]')
('correct:', '[1 ]')
error: 0.12476625
('out: ', '[1.501 ]')
('correct:', '[1 ]')
error: 0.12546397
('All errors:', [0.12476624828904992, 0.1254639688456621])
('Average error:', 0.12511510856735603)
('Max error:', 0.1254639688456621, 'Median error:', 0.1254639688456621)