walidsliti / nilmtk

Non-Intrusive Load Monitoring Toolkit (nilmtk)

Home Page:http://nilmtk.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

NILMTK: Non-Intrusive Load Monitoring Toolkit

Non-Intrusive Load Monitoring (NILM) is the process of estimating the energy consumed by individual appliances given just a whole-house power meter reading. In other words, it produces an (estimated) itemised energy bill from just a single, whole-house power meter.

NILMTK is a toolkit designed to help researchers evaluate the accuracy of NILM algorithms.

As of June 2018, NILMTK is being revived! Although no major changes are expected in the coming months, the codebase is slowly being updated to work properly with the current Python ecosystem, especially to modern versions of our major dependency, Pandas. It may take time for the NILMTK authors to get back to you regarding queries/issues. However, you are more than welcome to propose changes, support!


NILMTK Documentation

Why a toolkit for NILM?

We quote our NILMTK paper explaining the need for a NILM toolkit:

Empirically comparing disaggregation algorithms is currently virtually impossible. This is due to the different data sets used, the lack of reference implementations of these algorithms and the variety of accuracy metrics employed.

What NILMTK provides

To address this challenge, we present the Non-intrusive Load Monitoring Toolkit (NILMTK); an open source toolkit designed specifically to enable the comparison of energy disaggregation algorithms in a reproducible manner. This work is the first research to compare multiple disaggregation approaches across multiple publicly available data sets. NILMTK includes:

  • parsers for a range of existing data sets (8 and counting)
  • a collection of preprocessing algorithms
  • a set of statistics for describing data sets
  • a number of reference benchmark disaggregation algorithms
  • a common set of accuracy metrics
  • and much more!


Please see our list of NILMTK publications. If you use NILMTK in academic work then please consider citing our papers.

Please note that NILMTK has evolved a lot since these papers were published! Please use the online docs as a guide to the current API.

Keeping up to date with NILMTK


  • April 2014: v0.1 released
  • June 2014: NILMTK presented at ACM e-Energy
  • July 2014: v0.2 released
  • Nov 2014: NILMTK wins best demo award at ACM BuildSys

For more detail, please see our changelog.


Non-Intrusive Load Monitoring Toolkit (nilmtk)


License:Apache License 2.0


Language:Python 100.0%Language:Shell 0.0%Language:Batchfile 0.0%