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, 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, 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]
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] filtro = Regressao() [pkts, predito, medidas, residuo] = filtro.algoritmoReducao([0], 289, 10) filtro = FiltroMedio(0.5) [pkts1, predito1, medidas, residuo1] = filtro.algoritmoReducao([0], 289, 10) print predito1[60], medidas[60] aux = range(1, len(medidas)+1) #Estatistica.plotar([aux, aux], [residuo, residuo1], 'Analise Mecanismos de Reducao', 'Epoca', 'Erro Residual', ['Regressao Simples', 'Filtro Medio']) Estatistica.plotar([aux, aux, aux], [medidas, predito, predito1], 'Analise Mecanismos de Reducao', 'Epoca', 'Temperatura', ['Valores Reais', 'Regressao Simples', 'Filtro Medio']) #Estatistica.plotarBarra([1000, pkts, pkts1], 'Numero de pacotes', VARIAVEL[0], 'Largura de Banda', ['Sem Predicao', 'Regressao simples', 'Filtro Medio']) #Estatistica.plotarBarra([1000*1.86, pkts*1.86, pkts1*1.86], 'Consumo de Energia', VARIAVEL[0], 'Energia', ['Sem Predicao', 'Regressao simples', 'Filtro Medio'])
from fabrica_fila import FabricaFila from estatistica import Estatistica from estatistica_resumida import EstatisticaResumida teste_fabrica = FabricaFila.pega_fila('prioridade') teste_fabrica.atualiza_fila() teste_fabrica.atualiza_fila() teste_fabrica.atualiza_fila() teste_fabrica.atualiza_fila() print(teste_fabrica.chama_cliente(10)) print(teste_fabrica.chama_cliente(10)) print(teste_fabrica.chama_cliente(10)) print(teste_fabrica.estatistica(EstatisticaResumida('20/03/2021', 120))) print(teste_fabrica.estatistica(Estatistica('20/03/2021', 120)))