Hidden Markov Model implementation using the REDD dataset....

253 views
Skip to first unread message

Shahid Hassim

unread,
Jan 15, 2016, 10:05:01 AM1/15/16
to Energy Disaggregation
Hi all,

Firstly, Thank you for this much needed forum. I wish you all the best in your efforts.

I'm a 4th year Energy Systems Engineering student at NUI Galway, Ireland,  currently doing energy disaggregation for my final year project.

I've made some progress in the 1st semester and have downloaded several datasets. I've decided to work with the high res REDD dataset. I will also be acquiring experimental load data in the Lab using  a smart meter that I designed and built.


I am somewhat of a noobie with Statistic Models, having only completed an introductory module in 3rd year. I recently read the "NILMTK: An Open Source Toolkit for Non-intrusive Load.
Monitoring"  paper and was wondering if the code on Github for the HMM is suitable for an implementation.

I don't have a Computer Science background and am confused by the Github directory.

My project goal is to disaggregate energy data into appliance level data. Accuracy is not important at this stage.  I will be focusing on innovation (project requirement)  later on.

Is there some help available about the code and how to implement it.


Kind Regard 

Shahid

Jack Kelly (aka Daniel)

unread,
Jan 15, 2016, 11:53:23 AM1/15/16
to Shahid Hassim, Energy Disaggregation
Dear Shahid,

Welcome to the energy disaggregation mailing list :)

If your aim is to get a disaggregation system up and running with as little coding as possible then wrapping your head around NILMTK is probably a reasonable approach.  However, as you have discovered, NILMTK is written very much as a research tool for folks with at least some computer science background; it is not designed as a simple black box for doing disaggregation.  But I'm sure you can get up to speed.  I'd start by learning the basics of Python and its scientific stack. The "scientific python lecture notes" are a good place to start: http://www.scipy-lectures.org

Once you have spent a little while familiarising yourself with Python then installing and using NILMTK should make a little more sense.

Disclaimer: I'm one of the NILMTK developers so I'm probably biassed!

Alternatively, if you are familiar with any other programming language then you might prefer to implement a simple NILM algorithm in your language of choice.  The combinatorial optimisation algorithm is probably a reasonably easy algorithm to implement yourself.

Best of luck!
Jack


--
You received this message because you are subscribed to the Google Groups "Energy Disaggregation" group.
To unsubscribe from this group and stop receiving emails from it, send an email to energy-disaggreg...@googlegroups.com.
To post to this group, send email to energy-dis...@googlegroups.com.
Visit this group at https://groups.google.com/group/energy-disaggregation.
To view this discussion on the web, visit https://groups.google.com/d/msgid/energy-disaggregation/83b7f96e-4f71-4184-af4e-dfe692e4aa5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Shahid Hassim

unread,
Jan 23, 2016, 1:09:57 PM1/23/16
to Energy Disaggregation, shahid...@gmail.com
Hi Jack,

Thank you very much.. 

I stumbled upon this post of yours : http://nipunbatra.github.io/2014/08/nilmtk-test-co/


On Friday, January 15, 2016 at 4:53:23 PM UTC, Jack Kelly wrote:
Dear Shahid,

Welcome to the energy disaggregation mailing list :)

If your aim is to get a disaggregation system up and running with as little coding as possible then wrapping your head around NILMTK is probably a reasonable approach.  However, as you have discovered, NILMTK is written very much as a research tool for folks with at least some computer science background; it is not designed as a simple black box for doing disaggregation.  But I'm sure you can get up to speed.  I'd start by learning the basics of Python and its scientific stack. The "scientific python lecture notes" are a good place to start: http://www.scipy-lectures.org

Once you have spent a little while familiarising yourself with Python then installing and using NILMTK should make a little more sense.

Disclaimer: I'm one of the NILMTK developers so I'm probably biassed!

Alternatively, if you are familiar with any other programming language then you might prefer to implement a simple NILM algorithm in your language of choice.  The combinatorial optimisation algorithm is probably a reasonably easy algorithm to implement yourself.

Best of luck!
Jack

On 15 January 2016 at 15:05, Shahid Hassim <shahid...@gmail.com> wrote:
Hi all,

Firstly, Thank you for this much needed forum. I wish you all the best in your efforts.

I'm a 4th year Energy Systems Engineering student at NUI Galway, Ireland,  currently doing energy disaggregation for my final year project.

I've made some progress in the 1st semester and have downloaded several datasets. I've decided to work with the high res REDD dataset. I will also be acquiring experimental load data in the Lab using  a smart meter that I designed and built.


I am somewhat of a noobie with Statistic Models, having only completed an introductory module in 3rd year. I recently read the "NILMTK: An Open Source Toolkit for Non-intrusive Load.
Monitoring"  paper and was wondering if the code on Github for the HMM is suitable for an implementation.

I don't have a Computer Science background and am confused by the Github directory.

My project goal is to disaggregate energy data into appliance level data. Accuracy is not important at this stage.  I will be focusing on innovation (project requirement)  later on.

Is there some help available about the code and how to implement it.


Kind Regard 

Shahid

--
You received this message because you are subscribed to the Google Groups "Energy Disaggregation" group.
To unsubscribe from this group and stop receiving emails from it, send an email to energy-disaggregation+unsub...@googlegroups.com.

Jack Kelly

unread,
Jan 23, 2016, 1:17:59 PM1/23/16
to Energy Disaggregation, shahid...@gmail.com
you're welcome :)

but please note that that post is by Nipun Batra, another NILMTK developer (and a very good one!)

Shahid Hassim

unread,
Jan 28, 2016, 4:46:17 PM1/28/16
to Energy Disaggregation, shahid...@gmail.com
Hello Jack,

I'm still evaluating. 

What about the implementation of your own work that you outline in Ch. 6 of your Masters Thesis - 2011? 

You didn't mention it. :) Would it be easy to implement.?

Jack Kelly (aka Daniel)

unread,
Jan 28, 2016, 6:01:12 PM1/28/16
to Shahid Hassim, Energy Disaggregation

I had a lot of fun writing the NILM algorithm I described in my masters thesis. I suppose it would be kind of amusing to see how it performs against modern algorithms. But I'd be surprised if it faired very well!  It probably wouldn't be hard to implement (especially in Python instead of C++ which I used for my masters thesis) although you'd probably want to add some kind of pruning to reduce the number of branches it tries to consider at any one time during disaggregation.  The implementation I wrote during my masters  gobbled up memory!  Actually, now I think about it, that algorithm would probably be quite suitable for parallelising across thousands of GPU cores, which might be kind of fun.  But I'm afraid I have no plans to reimplement my MSc NILM algorithm. Largely because I doubt it would perform very well.

--
You received this message because you are subscribed to the Google Groups "Energy Disaggregation" group.
To unsubscribe from this group and stop receiving emails from it, send an email to energy-disaggreg...@googlegroups.com.

To post to this group, send email to energy-dis...@googlegroups.com.
Visit this group at https://groups.google.com/group/energy-disaggregation.
Reply all
Reply to author
Forward
0 new messages