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]
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)
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]