Beispiel #1
0
 def algoritmoReducao(self, colunas, numTotEpocas, numAmostrasCiclo):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         saida = []
         erroAc = []
         medidas = []
         
         variavel = sensor.obterLeitura(var, 0, numTotEpocas-1)
         if(self.remOutlier):
             variavel = Estatistica.removeOutliers(variavel)
         
         numIter = int(ceil(float(numTotEpocas)/numAmostrasCiclo))
         erro = 0
         limSup = limInf = 0
         
         i = 1
         while(i <= numIter):
             limInf = (i-1)*numAmostrasCiclo
             limSup = i*numAmostrasCiclo-1
             if(limSup >= numTotEpocas):
                 limSup = (numTotEpocas%numAmostrasCiclo)+limInf-1
             
             medidas = variavel[limInf:limSup+1]
             
             informacoes = Estatistica.regSimples(range(limInf+1, limSup+2), medidas, True)
             saida = saida.__add__(informacoes[2])
             erro = informacoes[4]
             erroAc.append(erro)
             i += 1 
         
         residuo = Estatistica.erroResidual(variavel, saida);
                     
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'eqm': sum(erroAc), 'pkt-gerados': numIter, 'mecanismo': 'Regressao'}
         Log.registraLog(ARQUIVO_SAIDA, FORMAT, DIC)
         
         if(self.plot):
             Estatistica.plotar((range(1, numTotEpocas+1), range(1, numTotEpocas+1)), (variavel, saida), "Filtro Medio", "Epoca", VARIAVEL[var%len(VARIAVEL)], ["Valores Reais", "Valores Preditos"])
         
     return [numIter, saida, variavel, residuo]
Beispiel #2
0
 def algoritmoReducao(self, colunas, numTotEpocas, numAmostrasCiclo):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         saida = []
         erroAc = 0
         medidas = []
         
         variavel = sensor.obterLeitura(var, 0, numTotEpocas-1)
         numIter = int(ceil(float(numTotEpocas)/numAmostrasCiclo))
         erro = 0
         coefGerados = 1
         limSup = limInf = 0
         
         i = 1
         while(i <= numIter):
             limSup = i*numAmostrasCiclo-1
             if(limSup >= numTotEpocas):
                 limSup = (numTotEpocas%numAmostrasCiclo)+limInf-1
                 
             medidas = variavel[limInf:limSup+1]                                                
             informacoes = Estatistica.regSimples(range(limInf+1, limSup+2), medidas, (True))                    
             erro = informacoes[3]
             if(erro <= self.limiar or (limInf == limSup-numAmostrasCiclo+1)):
                 saida[limInf:limSup+1] = informacoes[limInf:limSup+1]
                 print len(saida) 
                 erroAc.append(sum(erro))                    
                 if(erro > self.limiar):                        
                     limInf = i*numAmostrasCiclo
                     coefGerados += 1
                     
                 i += 1
             else:
                 limInf = (i-1)*numAmostrasCiclo
                 coefGerados += 1
             
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'Erro-Acumulativo': sum(erroAc), 'pkt-gerados': coefGerados}
         Log.registraLog('cumulativo', FORMAT, DIC)         
Beispiel #3
0
 def algoritmoReducao(self, colunas, numLeituras, tamInicialJanelas):
     sensor = Sensor(self.ARQUIVO)
     
     for var in colunas:
         preditos = []
         erroAc = []
         medidasAtuais = []
         erro = 0
         coefGerados = 1        
         flag = fimLeituras = False
         
         leituras = sensor.obterLeitura(var, 0, numLeituras-1)
         fimJanela = tamInicialJanelas-1
         iniJanela = 0
         if(self.remOutlier):
             leituras = Estatistica.removeOutliers(leituras)
 
         while(fimJanela < numLeituras):
             varReg = []
             if((fimJanela-iniJanela+1) == tamInicialJanelas or flag):     
                 varReg = (range(iniJanela+1, fimJanela+2))            
                 medidasAtuais = leituras[iniJanela:fimJanela+1]
                 flag = False
             else:
                 medidasAtuais = [leituras[fimJanela]]
             
             if(not len(varReg)):    
                 varReg.append(fimJanela+1)    
             #fimJanela = (fimJanela, numLeituras)[fimJanela >= numLeituras]                  
             
             informacoes = Estatistica.regSimples(varReg, medidasAtuais, (erro > self.limiar or (fimJanela-iniJanela+1) == tamInicialJanelas))
             erro = informacoes[4]
             #preditos = preditos.__add__(informacoes[2])
             
             if(erro <= self.limiar or ((fimJanela-iniJanela+1)==tamInicialJanelas)):
                 erroAc.append(erro)
                 preditos = preditos.__add__(informacoes[2])
                              
                 if(erro <= self.limiar):
                     fimJanela += 1                    
                 else:
                     coefGerados += 1
                     iniJanela = fimJanela+1
                     fimJanela += tamInicialJanelas
             else:
                 coefGerados += 1
                 if(fimJanela < (numLeituras-1)):
                     iniJanela = fimJanela
                     fimJanela += tamInicialJanelas-1
                     flag = True
                 
             if(fimJanela > numLeituras and (not fimLeituras)):
                 fimJanela = numLeituras-1
                 fimLeituras = True
                 
         residuo = Estatistica.erroResidual(leituras, preditos);
         print residuo
         
         DIC = {'variavel': VARIAVEL[var%len(VARIAVEL)], 'media': Estatistica.media(erroAc), 'minimo': Estatistica.minimo(erroAc),
                'maximo': Estatistica.maximo(erroAc), 'eqm': sum(erroAc), 'pkt-gerados': coefGerados, 'mecanismo': 'Filtro-Medio'}
         
         Log.registraLog(ARQUIVO_SAIDA, FORMAT, DIC)
         
         if(self.plot):
             Estatistica.plotar((range(1, numLeituras+1), range(1, numLeituras+1)), (leituras, preditos), "Filtro Medio", "Epoca", VARIAVEL[var%len(VARIAVEL)], ["Valores Reais", "Valores Preditos"])
         
     return [coefGerados, preditos, leituras, residuo]