2014-09-21 2 views
4

그래서 저는 python과 pybrain에 새로 왔지만 온라인에서 코드를 발견하고 그에 대한 데이터를 직접 실행했습니다. 내가 파이썬에서 볼 때 내가 보는 모든pybrain 무엇이 총 오류입니까?

Total error: 0.119794950183 
Total error: 0.120078064472 
Total error: 0.119334171755 
Total error: 0.119215954708 
Total error: 0.119876371059 
Total error: 0.119621091587 
Total error: 0.119983293587 
Total error: 0.119849213731 
Total error: 0.119638354788 
Total error: 0.119574076444 
Total error: 0.119634911454 
Total error: 0.119601510912 
Total error: 0.119665039573 
Total error: 0.11944303853 
Total error: 0.11950617361 
Total error: 0.120088611572 
Total error: 0.119774446939 
Total error: 0.120016814426 
Total error: 0.119605678505 
Total error: 0.119998864263 
Total error: 0.120071472045 
Total error: 0.11973079242 
Total error: 0.119790825048 
Total error: 0.119558913137 
Total error: 0.12024443015 
Total error: 0.119525196587 
Total error: 0.12008456943 
Total error: 0.119641361568 
Total error: 0.119745707444 
Total error: 0.120065315199 

1) 총 오류가 무엇을 의미합니까 무엇가에 대한 질문에 대답하기 위해 코드

from pybrain.datasets import SupervisedDataSet 
from pybrain.tools.shortcuts import buildNetwork 
from pybrain.supervised.trainers import BackpropTrainer 

from pybrain.datasets   import ClassificationDataSet 
from pybrain.utilities   import percentError 
from pybrain.tools.shortcuts  import buildNetwork 
from pybrain.supervised.trainers import BackpropTrainer 
from pybrain.structure.modules import SoftmaxLayer 

from pylab import ion, ioff, figure, draw, contourf, clf, show, hold, plot 
from scipy import diag, arange, meshgrid, where 
from numpy.random import multivariate_normal 

ds = SupervisedDataSet(2,1) 

tf = open('weather.csv','r') 

for line in tf.readlines(): 
    try: 
     data = [float(x) for x in line.strip().split(',') if x != ''] 
     indata = tuple(data[:2]) 
     outdata = tuple(data[2:]) 
     ds.addSample(indata,outdata) 
    except ValueError,e: 
      print "error",e,"on line" 

n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True) 
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True) 
t.trainOnDataset(ds,5000) 
t.testOnData(verbose=True) 
+0

코드가 어디에 있습니까? – Kasramvd

+0

PyBrain에 어떤 종류의 모델을 맞추시겠습니까? 예를 들어, 회귀 모델을 피팅하는 경우이 값은 제곱 된 오류의 합계 일 수 있습니다.이 오류를 총 오류라고도합니다. 이것은 아마도 여러분이 적합하려고 시도하는 모델 클래스에 공통적 인 오류 용어 일 것입니다. – ely

+0

코드 –

답변

3

여기

이다 일이다 쉘 "그것이 무엇을 말해 줍니까?": 총 오류를 살펴보면 훈련 시간이 길어질수록 네트워크가 더 잘 수행 될 수 있는지 여부에 관해 괜찮은 추측을 할 수 있습니다. 총 오류가 한 반복에서 다음 반복으로 많이 바뀌면 그것이 최종 상태로 떨어지지 않았 음을 나타내는 신호가됩니다. 그것은이 링크에서 찾고 가치가있을 수도 있습니다 :이

http://pybrain.org/docs/api/supervised/trainers.html

당신이 trainEpochs 및 trainUntilConvergence에 대한 참조를 볼 수 있습니다. 보고있는 totalerror는 네트워크가 최종 상태로 수렴했음을 보여 주지만 추가 교육을 통해 많은 부분을 개선하지는 못합니다.

요약하면 트레이닝을 중지 할 때까지 보는 것이 totalError 인 경우 (실제로는 그렇지 않습니다.) 걱정하지 않아도됩니다. 테스트 출력을보고 네트워크가 자신의 목적에 적합한 작업을하고 있는지 판단하십시오.

+0

거기에 정확한 백분율을 찾기 위해 Python으로 코딩하는 방법이 있습니다. 예를 들어 출력은 1이나 0 일 수 있습니다. ANN이 .58 예측을하고 실제 응답이 1 인 경우 Python이 ANN DID가 올바른 결과를 얻고 싶다고 말하고 싶습니다. 약 .50 ... ANN이 .50이고 실제 값은 1입니다. 그 반대. 나는 이것이 의미가 있기를 바랍니다. –

+1

글쎄,이 루프를 사용할 수 있다고 가정 해 봅시다. " train() 한 모듈의 관련된 모듈을 훈련시킵니다." ... 모든 작업을 완료했는지 확인하십시오. 그러나 이것을 분류 네트워크로 모델링 해 볼 수도 있습니다 (2 개의 클래스에 대한 2 개의 출력을 가지고, 1 또는 0으로 해석합니다). 여기에 그 예가 나와 있습니다. http://www.pybrain.org/docs/_sources/tutorial/fnn.txt – rossdavidh

+1

도움 주셔서 감사합니다. Rossdavidh :) –