def test_fhmm_correctness(self): elec = self.dataset.buildings[1].elec fhmm = FHMM() fhmm.train(elec) mains = elec.mains() output = HDFDataStore('output.h5', 'w') fhmm.disaggregate(mains, output, sample_period=1) for meter in range(2, 4): df1 = output.store.get('/building1/elec/meter{}'.format(meter)) df2 = self.dataset.store.store.get( '/building1/elec/meter{}'.format(meter)) self.assertEqual((df1 == df2).sum().values[0], len(df1.index)) self.assertEqual(len(df1.index), len(df2.index)) output.close() remove("output.h5")
return gt_overall, pred_overall # Since the methods use randomized initialization, let's fix a seed here # to make this notebook reproducible import numpy.random numpy.random.seed(42) sample_period = 120 predictions = [] gts = [] fhmm = FHMM() for building in range(5): print('*' * 20 ) print('Casa : {}'.format(building)) print('Usando o metodo FHHM...') print('*' * 20 ) fhmm.train(top_5_train_elec[building], sample_period=sample_period) gt, prediction = predict(fhmm, test_elec[building], sample_period, train.metadata['timezone']) gts.append(gt) predictions.append(prediction) for i in range(5): appliance_labels = [m.label() for m in gts[i].columns.values] gts[i].columns = appliance_labels predictions[i].columns = appliance_labels list_geladeira = predictions[0]['Fridge'].tolist() list_luzes = predictions[0]['Light'].tolist() list_tomadas = predictions[0]['Sockets'].tolist() list_microondas = predictions[0]['Microwave'].tolist() list_lavadora = predictions[0]['Dish washer'].tolist()
thread_processamento.start() for b in buffer: response.write(b.encode()) self.wfile.write(response.getvalue()) print("[OK] Carregando base de dados da casa: " + str(HOUSE)) buffer = [] train = DataSet('banco_unifei_casa_2.h5') #Enumera todas as casas buildings = [i for i in range(3)] #Vetor que guarda os dados de todas as casas train_elec = [None for i in range(3)] for building in buildings: train_elec[building] = train.buildings[building + 1].elec print("[OK] Treinamento inicializado...") numpy.random.seed(42) sample_period = 120 predictions = [] gts = [] fhmm = FHMM() fhmm.train(train_elec[0], sample_period=sample_period) print("[OK] Processo de desagregacao iniciado...") httpd = HTTPServer((SERVER_IP, PORT), SimpleHTTPRequestHandler) print("[OK] Servidor HTTP Estabelecido com sucesso") httpd.serve_forever()