Пример #1
0
    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")
Пример #2
0
    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()
Пример #3
0
        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()