NILM Toolkit

NILMTK is an open-source toolkit designed to help researchers evaluate the accuracy of energy disaggregation algorithms. The toolkit is written in python and is available on Github, where it has been starred over 500 times and forked over 300 times.

Nipun Batra, Jack Kelly and I started the project in 2014, with the release of version 0.1. This release allowed researchers to parse data sets, run benchmark algorithms, and evaluate model accuracy using a common codebase. We published a paper at ACM E-Energy describing this initial release, which has since become my most cited paper.

The first version of the toolkit showed promise, but quickly hit memory problems when processing large data sets. We addressed this limitation through the implementation of lazy loading, which only loaded individual chunks of the whole data set into memory at once for processing. We released version 0.2 of the toolkit, and submitted a short paper to ACM BuildSys, where it won the best demo prize.

Nipun and I with our best demo certificate at BuildSys 2014 in Memphis

Shortly after this release, Jack and I left academia to take applied positions in industry. However, the toolkit continued to receive many contributions from the community over the next few years. In 2019, Nipun coordinated large collaboration to implement a number of state-of-the-art disaggregation algorithms in the toolkit, which lead to the release of version 0.3 of the toolkit. I contributed to a last-minute write up of this effort, which was published as a full paper at ACM BuildSys.