Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HanYangZhao/SmartMeterPrediction
Home energy usages prediction based on neural networks and smart meter data
https://github.com/HanYangZhao/SmartMeterPrediction
docker energy-consumption energy-monitor keras machine-learning neural-network tensorflow
Last synced: 3 months ago
JSON representation
Home energy usages prediction based on neural networks and smart meter data
- Host: GitHub
- URL: https://github.com/HanYangZhao/SmartMeterPrediction
- Owner: HanYangZhao
- Created: 2018-04-21T02:16:15.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-04-21T05:20:09.000Z (about 6 years ago)
- Last Synced: 2024-01-29T17:14:29.332Z (5 months ago)
- Topics: docker, energy-consumption, energy-monitor, keras, machine-learning, neural-network, tensorflow
- Language: Python
- Homepage:
- Size: 8.73 MB
- Stars: 20
- Watchers: 3
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Lists
- awesome-advanced-metering-infrastructure - Smart meter Prediction - HydroQuebec Home energy usages prediction based on machine learning and smart meter data (Python / General-Purpose Machine Learning)
README
# SmartMeterPrediction - HydroQuebec
Home energy usages prediction based on machine learning and smart meter data![Demo](https://github.com/HanYangZhao/SmartMeterPrediction/blob/master/screenshot.png)
# Getting Started
* Go to the docker folder
* Build the docker containers in the sub-folder
* In `docker-compose.yml` add the necessary informations
* `docker-compose up`
* Graphana setup
* go to `localhost:3000`
* add the data source
* url : http://influxdb:8086
* Use Proxy setting
* Database name : e
* import `energy_usage.json` as a new dashboard
* A new prediction should be made everyday# Training
## Pre-reqs
* `pip install -r requirements.txt` in the training folder
* tensorflow-gpu is strongly recommended if you have the hardware
## Multiple linear regression
* Download your house's hourly datasets from Hydro-Quebec
* Put them all in the the `./training/data/hourly` folder
* Run the `cvs_hour_processing.py` script. This should create a new csv file.
Make sure that there are no hours with no energy usage in the data set
* Go to the `multi_linear_regression_hourly.py` and change `line 20` to point the new csv created
* Run `multi_linear_regression_hourly.py`
* Uses the temperature, hour of the day and is_workday to make predictions and train the network
* ![DNN](https://github.com/HanYangZhao/SmartMeterPrediction/blob/master/results/hourly/dnn_3_layers_64_neurons_00_dropout.png)
## LSTM network
* Download your house's hourly datasets from Hydro-Quebec
* Put them all in the the `./training/data/hourly` folder
* Run the `cvs_hour_processing.py` script
* Make sure that there are no hours with no energy usage in the data set
* Go to the `lstm_hourly.py` and change `line 43` to point the new csv created
* You can adjust what parameters we want to use for training by changing `line 36` and the numbers of prediction hours in `line 39 - line 41`
* Uses the temperature, hour of the day previous predictions and is_workday to generate new predictions and train the network
* NOTE: I've currently commented out in the LSTM prediction because it's not very accurate. To re-enable you need to remove the comments in `./predictor/main.py` and `./predictor/database.py`
* ![LSTM](https://github.com/HanYangZhao/SmartMeterPrediction/blob/master/results/hourly/lstm_6_layers_100_neurons_02_dropout.png)