Giter Club home page Giter Club logo

nilmtk's Introduction

NILMTK for SOR 2017

NILMTK is a toolkit developed by NILM researchers to speed up the pace of progress in the field. See the NILMTK paper and the original NILMTK repository and documentation for more information.

SOR or MS-E2177 Seminar on Case Studies in Operations Research (5 cr) is an Aalto University course where student teams of three to five learn by working on a research project given by a company or research organization and report and compare their achievements with those of their peers.

This repository is a fork of the NILMTK repository that was used to explore the toolkit and publicly available NILM datasets. As part of the project, converters for two synthetic datasets and a dataset provided by Fortum was developed in order to access the data through NILMTK. Also, a wrapper was implemented into this NILMTK fork that enables the use of an unsupervised NFHMM algorithm which was also developed by us as part of the project. The NFHMM algorithm was itself developed in R and is available in its own repository.

The Fortum dataset is not public. However, the performance of the NFHMM algorithm was explored also against the two synthetic datasets we generated. The synthetic datasets as well as the code used to generate them is included in this fork in the test directory.

The converters developed for the synthetic datasets and the Fortum dataset are at nilmtk/dataset_converters/sortd/convert_sortd.py and nilmtk/dataset_converters/fortum/convert_fortum.py, respectively.

The NFHMM wrapper was implemented to nilmtk/disaggregate/nfhmm_wrapper.py.

NILMTK was also extended with several scripts located at the scripts folder. The fortum_data_converter.py was created to prune and reorganize the data of the Fortum dataset into a more suitable CSV format. The dataset converter mentioned above was developed to convert the results of this script. Note that appropriate metadata is required as well as the data which are currently both unpublished.

The dsexp.py and daexp.py scripts were developed in order to explore datasets and disaggregators, respectively. For the most part, they were means by which the authors also learned hands-on how to use NILMTK.

The comparison.py script was used to compare the performance of the NFHMM algorithm we developed with the CO and FHMM algorithms already implemented in NILMTK and to generate related material for a report.

Some other files were also created into the repo during the learning and testing phases like nilmtk/disaggregate/dummy.py which is an extremely simple supervised disaggregator developed in order to test and demonstrate how disaggregators can be developed for NILMTK. Some disaggregation result plots are also available in the results folder.

A report was written to document, present and ponder on the results of the project and it is available in the repo that also contains the NFHMM implementation. Also, while it should be rather straightforward in principle to test our datasets and NFHMM algorithm yourself few attempts have been made to make it very easy. It may be wise to download, install and familiarize yourself with the main NILMTK repository first and only then explore and test each extension in this repository. Familiarity with NILMTK is thus very useful.

Please contact the contributors for more information.

Contributors

Course project team:

  • Samuel Marisa, samuel.marisa, aalto.fi
  • Mihail Douhaniaris
  • Matias Peljo
  • Johan Salmelin

See NILMTK contributors from the NILMTK repository.

nilmtk's People

Contributors

jackkelly avatar nipunbatra avatar oliparson avatar josemao avatar rishibaijal avatar sjjsy avatar paperbackraita avatar magusverma avatar pilillo avatar bitdeli-chef avatar christophalt avatar jpcofr avatar ahersey avatar

Stargazers

Christoph Klemenjak avatar  avatar

Watchers

 avatar Mihail Douhaniaris avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.