sambaiga / AWRGNILM

Adaptive Recurrence Graph for Appliance classification in NILM.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adaptive Weighted Recurrence Graph for Appliance Recognition in Non-Intrusive Load Monitoring

This repository is the official implementation of Adaptive Weighted Recurrence Graph for Appliance Recognition in Non-Intrusive Load Monitoring. This paper proposes hyper-parameter free weighted recurrence graphs block (AWRG) for appliance feature representation in NILM and apply Convolutional Neural Networks for classification. The proposed AWRG block is included in the learning pipe-line as part of the end-to-end feature learning with deep learning networks. We conduct an extensive evaluation of two datasets collected from residential and industrial environments. In contrast to other approaches that use sub-metered data, we test our method on aggregated power measurements, which is much more realistic. Furthermore, we contrast the multi-dimension three-phase system in industrial settings and the single-phase system in residential buildings, which is not common in the literature.

This package contains a Python implementation of Adaptive Recurrence Graph for Appliance classification in NILM.

Requirements

  • python
  • numpy
  • pandas
  • matplotlib
  • tqdm
  • torch
  • sklearn
  • seaborn
  • nptdms

Research Paper

If you find this tool useful and use it (or parts of it), we ask you to cite the following work in your publications:

A. Faustine, L. Pereira and C. Klemenjak, "Adaptive Weighted Recurrence Graphs for Appliance Recognition in Non-Intrusive Load Monitoring," in IEEE Transactions on Smart Grid, doi: 10.1109/TSG.2020.3010621.

  @ARTICLE{9144492,
  author={A. {Faustine} and L. {Pereira} and C. {Klemenjak}},
  journal={IEEE Transactions on Smart Grid}, 
  title={Adaptive Weighted Recurrence Graphs for Appliance Recognition in Non-Intrusive Load Monitoring}, 
  year={2020},
  volume={},
  number={},
  pages={1-1},
  }

Usage

  1. Preprocess the data for a specific dataset. Note: the data directory provided includes preprocessed data for the two datasets LILAC and PLAID.
  2. To replicate experiment results you can run the run_experiments.py code in the src directory.
  3. The script used to analyse results and produce visualisation presented in this paper can be found in notebook directory
    • Results Analysis notebook provide scripts for results and error analysis.
    • Visualisation paper notebook provide scripts for reproducing most of the figure used in this paper.

About

Adaptive Recurrence Graph for Appliance classification in NILM.


Languages

Language:Python 54.8%Language:Jupyter Notebook 45.2%