{
  "id": 6168,
  "title": "Congrats Jessica!",
  "url": "/competitions/belkin-energy-disaggregation-competition/discussion/6168",
  "author_name": "",
  "post_date": "2013-10-31T00:56:57.607Z",
  "votes": null,
  "comment_count": 23,
  "views": 12028,
  "content": "<p>Congrats Jessica and other winners!</p>\n<p>What an interesting and challenging problem.</p>",
  "messages": [
    {
      "id": "32910",
      "postDate": "10/31/2013 00:56:57",
      "content": "<p>Congrats Jessica and other winners!</p>\n<p>What an interesting and challenging problem.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32911",
      "postDate": "10/31/2013 01:08:53",
      "content": "<p>Congrats as well! Would any of the top 20 be willing to share their insights and perhaps how they accomplished their placements? Im very curious as to what you guys generally did with this problem.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32914",
      "postDate": "10/31/2013 02:02:53",
      "content": "<p>Well done, Jessica - congrats.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32915",
      "postDate": "10/31/2013 03:07:16",
      "content": "<p>I can sketch out a few things I did, it wasn't all that complicated. I didn't use any fancy ML/signal processing/stats techniques (and in general I think it's best to avoid fancy techniques if simple, intuitive ones work).</p>\n<p>First, I resampled the data so that the various time series (phase 1 power, phase 2 power, HF noise) all had the same time ticks, and to reduce the data size in general. I used 15s granularity which I am sure some of you find very coarse, but I wanted analyses to run quickly and honestly you don't gain much from having lots of correlated samples when the output resolution is only 1 minute. You can also easily throw out the early and late hours of the day, as nothing is going on (neither training events or submission window), approximately halving the data size.</p>\n<p>Once I had consistently re-sampled data, I took first differences in time. This is very important. I see people in the Visualization Prize entries not doing any differencing, and expecting the same metric values to show up later (I think maybe even some of the research papers do this?). That is going to work on the training data but fail on the test data, when you have multiple overlapping appliances, or even if you just have strong background &quot;noise&quot; from heating systems and the like. I also wouldn't try and difference out an average of the whole day's signal, which I also see people doing - from plots you can see there are lots of crazy things going on at all hours, the most relevant piece of data to what was happening as an appliance comes on is what was happening immediately before.</p>\n<p>Once you have first differences in time, you can do lots of things. For the big &quot;cycle&quot; type appliances (e.g. dishwasher) you can just train on time series patterns and then look for them in the test data - I included a really obvious one in my Visualization Prize entry. For the appliances that run more or less consistently (no time variation/cycles) you can look for on/off events that match the on/off events in the training data. Since you have multiple disparate ways to find signatures (e.g. power levels vs HF noise) you can combine these together (I generally just &quot;AND&quot;ed boolean values of &quot;is appliance X turning on now?&quot; across simplistic power and HF detectors, again hinted at in my Visualization Prize submission) to get fairly high quality on/off events.</p>\n<p>That was basically it. I tested lots of houses/appliances in isolation and kept good notes of what was being tested in each submission, and was able to recreate each submission easily via versioning. I didn't find too many of the quality issues that others complained about, though there were definitely some. (Perhaps this is because I started later, so some issues were already fixed by the time I submitted) At some point I more or less ran out of appliances that had strong enough signatures to test/be confident in.</p>\n<p>By keeping good notes you could very easily determine the public/private fold division - it was simply that the first 2 test files (sorted lexicographically) for each house were public, the last 2 were private. This was very nice for testing submissions, since you knew exactly what score to expect and could rate your submission as &quot;85% correct on the public fold&quot; or similar.</p>\n<p>Hope that was helpful. Coming in to the close I was expecting to have to do a write-up for the sponsors but just missed it, so I guess this is as close as I'll get. :)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32916",
      "postDate": "10/31/2013 04:20:50",
      "content": "<p>[quote=rosnfeld;32915]</p>\n<p>First, I resampled the data so that the various time series (phase 1 power, phase 2 power, HF noise) all had the same time ticks, and to reduce the data size in general.</p>\n<p>[/quote]</p>\n<p>Could you explain, maybe with some rough pseudo code how you did this part? Did you use python's pandas?</p>\n<p>[quote=rosnfeld;32915]</p>\n<p>I took first differences in time.&nbsp;</p>\n<p>[/quote]</p>\n<p>Im confused what you mean by this, did you find the delta of all the signals from before the appliance was turned on to when it was on?&nbsp;</p>\n<p>I dont want to really hi-jack this thread. I could start a new one if you would like or you can contact me via email. I would love to hear more.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32917",
      "postDate": "10/31/2013 05:00:26",
      "content": "<p>Hey rosnfeld, I enjoyed reading your explanation.</p>\n<p>I thought about subtracting the HF spectrum at time=tstep from the spectrum at time=tstep+1, but decided not to because I worried that doing so would only give me one chance to catch when an appliance was turned on (or off). If you don't subtract the spectrum at the previous time step, then you have all the sample points between when the appliance was turned on and when the appliance was turned off where you might catch that the appliance is running. </p>\n<p>Your method obviously worked very nicely. :-) But perhaps the optimal solution would be to consider both HF(t) and HF(t)-HF(t-1)....</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32921",
      "postDate": "10/31/2013 09:35:52",
      "content": "<p>I also used time differences (first derivative) to detect occurrence of events which as Rosnfeld already mentioned is critical. &nbsp;I used an edge detection algorithm for the power signatures to detect events and measure the size of the jump in each value from before and after the event happened. &nbsp;A summary of the results is shown in our visualization entry.</p>\n<p>I could see few transient HF signals that lasted more than a second and even for those the one second resolution of the HF data was too coarse to be useful because in some cases the transient was concentrated in one second giving a clear signal and in other cases it was split between two consecutive seconds resulting in a weaker signal for each of the seconds that was hard to distinguish from the noise.</p>\n<p>For each event, I averaged the HF data for several samples after the event and subtracted the average from several samples before the event. &nbsp;I then averaged these HF difference over multiple events to get steady state HF signatures for each appliance (plotted in the HFdiff figures of the visualization entry). &nbsp;In theory, these HF signatures should have allowed me to distinguish between appliances that had nearly identical power signatures and the theory worked well in some cases.</p>\n<p>These were some appliance pairs for which even the HF signatured I generated were not clear enough to distinguish between them and other pairs where the back-end solution did not seem to match what the HF signatures were telling me. &nbsp;In some cases it was more effective to choose the laundry room lights based on whether the Washer/Dryer were working at the same time than to rely on the HF signatures.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32923",
      "postDate": "10/31/2013 10:02:08",
      "content": "<p>Congragulations to both Jessica and Luis for the first and second place.</p>\n<p>I am wondering if there is an easy way to figure out which appliances you found that I either missed or chose not to mark because I was not confident about them.</p>\n<p>If you managed to detect events that involve any of the following appliances:</p>\n<ul>\n<li><span style=\"line-height: 1.4\">House 4 Appliances 1: Apple Macbook Pro 13</span></li>\n<li><span style=\"line-height: 1.4\">House 4 Appliance 21: Kitchen lights with dimmer</span></li>\n<li><span style=\"line-height: 1.4\">House 3 Appliance 24: Living room lights</span></li>\n<li><span style=\"line-height: 1.4\">House 2 Appliance 28: Phone charger</span></li>\n</ul>\n<p><span style=\"line-height: 1.4\">I would be very interested in seeing how you did it. </span></p>\n<p><span style=\"line-height: 1.4\">I could not find any useful signals in the test data that match the signatures for tags provided for these appliances. &nbsp;I am wondering what I missed that others may have found.</span></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32928",
      "postDate": "10/31/2013 13:34:30",
      "content": "<p>Thanks Noam for your write-up, and I didn't have any luck with any of the appliances you mention, either - though I also didn't have luck with most of the appliances. As people can see from the scores, a lot of appliance-time still went undetected, not even half of it was found in the best private fold submissions.</p>\n<p>To the others who asked for clarification on mine - I was being a bit handwavy with details (intentionally) but my approach is similar to Noam's and I think he explained it well, and his technique is a bit more precise than mine.</p>\n<p>I did use pandas and would recommend it - it's very nice to have simple methods like resample() and diff() that do all the work for you. I consistently find sample python code for data analysis where others have 20 lines to perform what pandas can do in 2.</p>\n<p>I'd love to hear if anyone had success with techniques substantially different from what's already been discussed. One problem that always haunted me was if users did the very natural thing of hitting a bank of lightswitches at once (or, very close in time). I think I could see instances of this happening, and thought about making my approach handle multiple simultaneous on/off events, but never took the plunge.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32932",
      "postDate": "10/31/2013 14:24:42",
      "content": "<p>I also offer my congrats to Jessica, Luis and Titan.</p>\n<p>Noam, I entered the contest late, and only worked on house 4. I was able to obtain visually distinct patterns for all of the appliances in the house. </p>\n<p>In my visualization entry, see slides 4 and 8 for a visualization of the house 4 kitchen lights.&nbsp; (same image on both slides, one with and one without some annotations.)&nbsp; Starting on the left, the first &quot;cyan&quot; box represents appliance 20 (Kitchen Counter Lights), the second &quot;cyan&quot; box is a slightly different color.&nbsp; It represents appliance 21 (Kitchen Lights with Dimmer).&nbsp; The next, longer orange bar is appliance 27 (oven).&nbsp; This sequence of three is sort of repeated to the far right of the image as 21, 20, 27 instead of 20, 21, 27 as on the left.</p>\n<p>Slide 10 contains the pattern for the Apple Macbook Pro 13.&nbsp; It is on the far right under the single dark blue box.&nbsp; This one box is over the three on/off events.&nbsp; There are signals apparent at the bottom of the slide (HF signal) and above the center (amps strength).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32964",
      "postDate": "10/31/2013 19:22:00",
      "content": "<p>My approach is still similar to the edge detection and differences in the power, but I will still describe it.</p>\n<p>&nbsp;</p>\n<p>First at all, I did not use any information from the HF data. I did not even look at it. My plan was originally to extract as much information from the power as I can and then go back to use the HF information. Later, I did not have time to go back and explore the HF data.</p>\n<p>&nbsp;</p>\n<p>For each of the appliances I have a window of 12 time ticks ( 2 seconds) that contain the 'turning on' signature and another window for the 'turning off' signature. The first 3 time ticks contain the power when the appliance is still off, and the remaining contain the power when the appliance is on. The number 12 is not fixed. I use different numbers for some appliances. There is a trade off for that number. For large numbers, the system is more robust to noise. For low numbers, the system is more capable of identifying appliances that are turned on or off at the same time.</p>\n<p>&nbsp;</p>\n<p>For a new test day, I have a window that runs through each time tick of the day and is compared to the 'turning on' signatures of each appliance. When the running window is very similar to one of the appliances signatures, the system mark that the appliance has been turned on. The same is done independently for the 'turning off' signatures. Finally, I pair the 'turning on' events with the 'turning off' events. That is the basic algorithm.</p>\n<p>&nbsp;</p>\n<p>My system is capable of identify appliances that are turned on very close in time (the difference in time should still be at least 1 second). However, it has limitations for low power appliances and it is unable to successfully distinguish appliances that are very similar.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32967",
      "postDate": "10/31/2013 19:48:45",
      "content": "<p>Thanks Luis,</p>\n<p>My &quot;edge detection&quot; algorithm also has an adjustable window size and I agree with your assessment that &quot;For large numbers, the system is more robust to noise. For low numbers, the system is more capable of identifying appliances that are turned on or off at the same time.&quot;</p>\n<p>For those of you who are interested in the technical details you might want to look at the comments&nbsp;<a href=\"https://www.kaggle.com/c/belkin-energy-disaggregation-competition/forums/t/6135/did-some-of-the-appliances-get-replaced-between-test-dates\">on the H1 GS4 and TV appliances</a></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "32975",
      "postDate": "10/31/2013 22:42:54",
      "content": "<p>First I want to thank the admins and the Belkin team to provide and manage such an interesting and challenging competition. </p>\n<p>It was really a difficult task to detect the correct appliances. Although there are various data sources available, sometimes I found it impossible to distinguish or even detect low signal appliances due to high signal-to-noise ratio. This difficulty is also reflected in the final scores, as anyone of us managed to predict only about 0.04 / 0.08 = 50% of all the given appliances. I wonder, how much the score would be, if we took together the correctly predicted appliances of all the participants?</p>\n<p>Basically I used also the first time differences to detect peaks. Instead of computing s(t+1) - s(t) which might be vulnerable to sampling frequency and also increases noise, my algorithms compute the mean of two time windows separated by some delay. Only then I took the difference. For those appliances with a characteristic signal, I computed the similarity by integrating over the squared difference. This works surprisingly well even if the signal is noisy.</p>\n<p>@Noam Tene: Unfortunately I also wasn't able to detect the appliances you mentioned above.</p>\n<p>I learned a lot during the competition and I'm looking forward to the next signal detection task.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33015",
      "postDate": "11/01/2013 13:11:09",
      "content": "<p>[quote=jessica bombaz;32975]</p>\n<p><span style=\"line-height: 1.4\">I wonder, how much the score would be, if we took together the correctly predicted appliances of all the participants?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">I was also wondering about a question along the same lines.</span></p>\n<p><span style=\"line-height: 1.4\">The question needs to be more carefully phrased however because I believe that the answer to the question as Jessica phrased it is both trivial and uninteresting. &nbsp;</span><span style=\"line-height: 1.4\">Specifically, I would give very good odds that &quot;if we took together the correctly predicted appliances&quot; from the only two submissions entered by&nbsp;&quot;Civashritt A B&quot; the score would be a perfect 0.0000; since his two submissions are a subset of those from &quot;All participants&quot; that would skew the results.</span></p>\n<p><span style=\"line-height: 1.4\">So how do we phrase the question that Jessica and I both seem to be interested in? &nbsp;</span><span style=\"line-height: 1.4\">Initially I considered&nbsp;</span><span style=\"line-height: 1.4\">the &quot;correctly predicted appliances from all four chosen submissions of all the participants&quot; to eliminate some of my early submissions&nbsp;that were designed to find how many &quot;on&quot; minutes my system needed to find in each day of the public fold. &nbsp;But then I realized that&nbsp;Civashritt's &quot;All-On&quot; submissions would still qualify under that definition.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">I therefore propose the following phrasing:&nbsp;</span></p>\n<p>I wonder, what the score would be if we took together the&nbsp;<span style=\"line-height: 1.4\">correctly predicted appliances from all participant's submissions that were chosen as the four &quot;selected&quot; submissions and got scores better than the all off benchmark&quot;</span></p>\n<p>&nbsp;</p>\n<p>Now that I have defined the question more clearly, I would like to make a &quot; hand labelled and human prediction&quot; about the answer:</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">[quote=jessica bombaz;32975]</span></p>\n<p>@Noam Tene: Unfortunately I also wasn't able to detect the appliances you mentioned above.</p>\n<p>[/quote]</p>\n<p><span style=\"line-height: 1.4\">I predict that If Luis and Rosnfeld can confirm that they did not detect the appliances I mentioned either, &nbsp;the combined score as I defined above will still be higher than 0.02 for the public fold and 0.01 for the private fold. &nbsp;In other words, I am predicting that at least 23% of the minutes marked as &quot;On&quot; in the public fold backend end solution and at least 14% of the minutes marked as &quot;on&quot; in the private fold were not detected by any of the participants.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">My confidence in this prediction is much higher than my confidence in many of the decisions I had to make about which appliance detection algorithms I should use for my four final submissions.</span></p>\n<p><span style=\"line-height: 1.4\">The prediction is based on several facts that I observed:</span></p>\n<ol>\n<li>My submission scores clearly show that appliances 1 and 21 in H4 turn on or off during intervals where there were no signals whatsoever (much less a signal that matches their tagged signatures).</li>\n<li>Another submission shows that Appliances 1 and 21 were both marked as &quot;Off&quot; at the beginning and end of the Sep12 submission period as well as the beginning of the Sep13 submission period.</li>\n<li>Other submissions show that during the 644 minutes of the two public fold days for H4&nbsp;Appliance 1 was on for 430 minutes and appliance 21 was on for 308 minutes.</li>\n</ol>\n<p>I was pretty confident that the signals were not there even before Jessica provided independent confirmation for that hypothesis. If Luis and Rosnfeld also confirm it, I would find it very hard to believe that these appliances were actually turned on. It is much easier to believe that whatever appliances Belkin may have thought were turned on and off when they generated the back-end solution&nbsp;were not in fact the appliances that were tagged in the training data set. &nbsp;&nbsp;Since the tagged appliances never generated on/off signals in the data none of the other contestants would have been able to find their signal and mark them correctly.</p>\n<p>Having seen this happen for two appliances just in H4, I would not be surprised to find similar issues with appliances in the other three houses so I feel quite confident that these back-end false positives would result in an unavoidable score for any contestant predictions that are based on the data Belkin provided.</p>\n<p><span style=\"line-height: 1.4\">I also learned a lot during the competition and I'm looking forward to the next signal detection task.</span></p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33018",
      "postDate": "11/01/2013 14:22:03",
      "content": "<p>Here are the appliances in my best submission:</p>\n<p>house_number,appliance_id,appliance_name<br>1,10,Dining Room Lights<br>1,11,Dishwasher<br>1,15,Downstairs Hallway Lights<br>1,19,GR PS4<br>2,9,Dishwasher<br>2,10,Dryer<br>2,16,Kitchen Lights<br>2,23,Master Bedroom Lights<br>2,26,Office Lights<br>2,37,Washer<br>3,12,Dryer<br>3,23,Living Room Audio-DVR-TV<br>3,29,Master LCD TV/DVR<br>3,31,Microwave<br>3,33,Oven<br>3,37,Washer<br>4,12,Dishwasher<br>4,19,Kettle<br>4,35,Toilet Halogen</p>\n<p>Even though I personally labeled some of these as &quot;very high risk&quot; I can see from the private fold score that I got 97.4% of my predicted rows correct. I guess I am quite risk averse. :)</p>\n<p>I'd be curious to know what percentage others got correct.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33019",
      "postDate": "11/01/2013 14:23:22",
      "content": "<p>And as others have mentioned - this competition was a lot of fun. I would definitely do more &quot;signal processing&quot; type competitions in the future.</p>\n<p>Congrats to the winners. :)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33035",
      "postDate": "11/01/2013 16:35:47",
      "content": "<p>It is interesting that the top performers all seem to have used some sort of similarity measure to compare detected test events with average training signatures (LF or HF).&nbsp; That was my first approach too, and I got my best results with that.&nbsp; However, I also tried k-nearest neighbors (extending&nbsp;the approach described in Gupta's paper by adding LF features such as real/imaginary power and current harmonics), na&#239;ve Bayes, and even random forest.</p>\n<p>None of these machine learning techniques performed very well at all, even when I combined them into an ensemble voting approach similar to that described by rosnfeld.&nbsp; I don't know whether I just did a poor job of identifying and extracting the features, but it seems hard to believe that the Gupta KNN approach could get near 100% accuracy unless the signal-to-noise was much better than in the data we had.</p>\n<p>Did anyone else try other classification algorithms that worked successfully?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33037",
      "postDate": "11/01/2013 16:46:32",
      "content": "<p>The house totals for my best private fold submission were were:</p>\n<p>H1: 260 minutes (which did not include 117 and 119)</p>\n<p>H2: 1278 minutes</p>\n<p>H3: 1573 minutes &nbsp;</p>\n<p>H4: 443 minutes</p>\n<p>According to my calculation if all of these minutes matched the back end solution my score should have been 0.03770. &nbsp; I thought this was my conservative submission. &nbsp;I wonder which of the devices I detected was marked as off in the Belkin back end solution.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33038",
      "postDate": "11/01/2013 16:56:01",
      "content": "<p>@Mike Shumpert: it seems that the best of your four submissions did not do much better than the &quot;All Off&quot; benchmartk. &nbsp;I am wondering if you picked the wrong four submissions or if your public fold score was a result of overfitting the public data. &nbsp;Would you care to elaborate?</p>\n<p>I would also like to clarify that I have seen no posts from the top 4 to indicate the use of LF data. &nbsp;What we all did (regardless of how we called it) was event detection in the time domain followed by some form of pattern matching to features that we measured for each event.</p>\n<p>My attempts to use the HF data were useful in a few cases (as demonstrated in my visualization entry). &nbsp;I believe that some of the HF data is clear enough to indicate that the Belkin back end solution may have marked the wrong appliances in several instances. &nbsp;Taking that into consideration, the best strategy may have been to ignore the HF data even when it was useful.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33040",
      "postDate": "11/01/2013 17:31:41",
      "content": "<p>Thanks for the reply, Noam.&nbsp; Yes, my best results alas came from entries that were not amongst my four submissions.&nbsp; I was trying new tricks to the very end, and did a poor job of covering my bases in the selection process.&nbsp; I ended up going with the best public fold results and they were perhaps over-fitted as you suggest.</p>\n<p>What I meant by &quot;LF data&quot; was all the non-HF data: real power, current, etc.&nbsp; It seems that Luis did very well working with only this data and ignoring HF altogether.&nbsp; From the research papers suggested to us, it seems the best approach would have to take all of it into account somehow.&nbsp; But as you point out, that would require us to have more confidence in the labeling of the test data (and for that matter, the training data).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33042",
      "postDate": "11/01/2013 17:49:43",
      "content": "<p>Did any of the top 4 bother with feature generation?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33043",
      "postDate": "11/01/2013 17:51:47",
      "content": "<p>The only features I used were real power and apparent power from phase 1 and phase 2.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33046",
      "postDate": "11/01/2013 18:25:56",
      "content": "<p>Excellent work everyone! I am really excited to learn about the clever tricks you all used.</p>\n<p>FWIW, the problem you all face is non-trivial with a large part of it being an open research problem. With the positive results you all generated, you have just set a new standard and defined a new state-of-the-art.&nbsp;</p>\n<p>Congratulations!</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "33074",
      "postDate": "11/01/2013 23:10:11",
      "content": "<p>[quote=Luis Tandalla;33043]</p>\n<p>The only features I used were real power and apparent power from phase 1 and phase 2.</p>\n<p>[/quote]</p>\n<p>I tried to look at several alternative sources of information provided in the data and eventually reached nearly the the same conclusion as Luis did. &nbsp;My event detection code happens to use the first harmonic of the real power and VAR from both phases but in retrospect that was an arbitrary choice. &nbsp;I designed my system to be able to detect signals in the higher harmonics when they exist but I did not find any tagged appliances that could be detected only based on the higher harmonics and the additional&nbsp;<span style=\"line-height: 1.4\">information gained from analysis of the higher harmonics never added significantly to my confidence in making a call based on the first harmonic alone (where most of the signal power is).</span></p>\n<p>I did see some very clear signals in the higher harmonics and for some appliances the VAR signals in the third and fifth harmonic had a better signal to noise ratio than the signal in the first harmonic. &nbsp;This is to to be expected for appliances with large reactive impedance and I believe that the higher harmonics may be useful for identifying differences between similar appliances with otherwise similar first harmonic signatures. &nbsp;However, in this specific competition that level of detailed analysis did not provide significant additional information and what it did provide fades in comparison with the high resolution of the HF data. &nbsp;</p>\n<p>When the first harmonic signature gives a high confidence unambiguous call, I concur with Luis' decision that there is no point in looking further and using more complicated algorithms. &nbsp;When more than one appliance matches the first harmonic signal, each of the odd higher harmonics amplifies our ability to measure the reactive impedance and look for small differences but in most cases it does not provide an independent prediction source like some of the higher frequency&nbsp;<span style=\"line-height: 1.4\">HF data.</span></p>\n<p>There were only a few pairs and triplets of appliances to test these techniques on and the quality of the back end solution was not high enough to support a real comparison between techniques. &nbsp;My choice to use the first harmonic instead of the total power (as Luis did) was in order to keep my code flexible enough in case the higher harmonics turned out to be useful. &nbsp;The difference between my approach and Luis' is insignificant because the contribution of the higher harmonics to the total power is much smaller than other noise sources. &nbsp;If the harmonics turn out to be useful (which I believe might happen in different situations that were not covered in this data set) my choice to use the first harmonic may provide clearer visualization of the independent contribution from each harmonic.</p>\n<p>My analysis of the higher harmonics in this competition did not provide additional information that was not already available from the first harmonic data which dominates the total power signature. &nbsp; I therefore completely concur with Luis' decision to look only at the total power.</p>\n<p>&nbsp;</p>\n<p>I am not surprised that people who tried to find correlations in the voltage and current data did not get very far. &nbsp;The information content in the voltage signals (for all six harmonics) was very low. &nbsp;The AC voltage at the given sampling frequency was was nearly constant (as expected). &nbsp;Even the small and few variations in the voltage that rose above the white noise did not seem to be correlated in any way to events in the tagged data so there was no useful information to be gained from those signals.</p>\n<p>When it comes to the current data, a clear correlation can be observed with some of the tagged events, however, the information content in the current data reflects not only the events that we are interested in observing but the external power line variations in both amplitude and phase which as I mentioned above have nothing to do with the appliances that we are trying to detect. &nbsp;The current data therefore contains more noise sources than the power data without adding any additional information. &nbsp;</p>\n<p>Adding voltage or current data as supposedly &quot;independent&quot; sources to your analysis only increases the size of the problem making it more complicated without gaining much in terms of predictive power. &nbsp;I am not at all surprised to see that people who trusted that approach did not do as well in this competition.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 32911,
      "author_name": "ntasfi",
      "author_url": "",
      "post_date": "10/31/2013 01:08:53",
      "content": "<p>Congrats as well! Would any of the top 20 be willing to share their insights and perhaps how they accomplished their placements? Im very curious as to what you guys generally did with this problem.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32914,
      "author_name": "jmshumpert",
      "author_url": "",
      "post_date": "10/31/2013 02:02:53",
      "content": "<p>Well done, Jessica - congrats.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32915,
      "author_name": "rosnfeld",
      "author_url": "",
      "post_date": "10/31/2013 03:07:16",
      "content": "<p>I can sketch out a few things I did, it wasn't all that complicated. I didn't use any fancy ML/signal processing/stats techniques (and in general I think it's best to avoid fancy techniques if simple, intuitive ones work).</p>\n<p>First, I resampled the data so that the various time series (phase 1 power, phase 2 power, HF noise) all had the same time ticks, and to reduce the data size in general. I used 15s granularity which I am sure some of you find very coarse, but I wanted analyses to run quickly and honestly you don't gain much from having lots of correlated samples when the output resolution is only 1 minute. You can also easily throw out the early and late hours of the day, as nothing is going on (neither training events or submission window), approximately halving the data size.</p>\n<p>Once I had consistently re-sampled data, I took first differences in time. This is very important. I see people in the Visualization Prize entries not doing any differencing, and expecting the same metric values to show up later (I think maybe even some of the research papers do this?). That is going to work on the training data but fail on the test data, when you have multiple overlapping appliances, or even if you just have strong background &quot;noise&quot; from heating systems and the like. I also wouldn't try and difference out an average of the whole day's signal, which I also see people doing - from plots you can see there are lots of crazy things going on at all hours, the most relevant piece of data to what was happening as an appliance comes on is what was happening immediately before.</p>\n<p>Once you have first differences in time, you can do lots of things. For the big &quot;cycle&quot; type appliances (e.g. dishwasher) you can just train on time series patterns and then look for them in the test data - I included a really obvious one in my Visualization Prize entry. For the appliances that run more or less consistently (no time variation/cycles) you can look for on/off events that match the on/off events in the training data. Since you have multiple disparate ways to find signatures (e.g. power levels vs HF noise) you can combine these together (I generally just &quot;AND&quot;ed boolean values of &quot;is appliance X turning on now?&quot; across simplistic power and HF detectors, again hinted at in my Visualization Prize submission) to get fairly high quality on/off events.</p>\n<p>That was basically it. I tested lots of houses/appliances in isolation and kept good notes of what was being tested in each submission, and was able to recreate each submission easily via versioning. I didn't find too many of the quality issues that others complained about, though there were definitely some. (Perhaps this is because I started later, so some issues were already fixed by the time I submitted) At some point I more or less ran out of appliances that had strong enough signatures to test/be confident in.</p>\n<p>By keeping good notes you could very easily determine the public/private fold division - it was simply that the first 2 test files (sorted lexicographically) for each house were public, the last 2 were private. This was very nice for testing submissions, since you knew exactly what score to expect and could rate your submission as &quot;85% correct on the public fold&quot; or similar.</p>\n<p>Hope that was helpful. Coming in to the close I was expecting to have to do a write-up for the sponsors but just missed it, so I guess this is as close as I'll get. :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32916,
      "author_name": "ntasfi",
      "author_url": "",
      "post_date": "10/31/2013 04:20:50",
      "content": "<p>[quote=rosnfeld;32915]</p>\n<p>First, I resampled the data so that the various time series (phase 1 power, phase 2 power, HF noise) all had the same time ticks, and to reduce the data size in general.</p>\n<p>[/quote]</p>\n<p>Could you explain, maybe with some rough pseudo code how you did this part? Did you use python's pandas?</p>\n<p>[quote=rosnfeld;32915]</p>\n<p>I took first differences in time.&nbsp;</p>\n<p>[/quote]</p>\n<p>Im confused what you mean by this, did you find the delta of all the signals from before the appliance was turned on to when it was on?&nbsp;</p>\n<p>I dont want to really hi-jack this thread. I could start a new one if you would like or you can contact me via email. I would love to hear more.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32917,
      "author_name": "smallyellowduck",
      "author_url": "",
      "post_date": "10/31/2013 05:00:26",
      "content": "<p>Hey rosnfeld, I enjoyed reading your explanation.</p>\n<p>I thought about subtracting the HF spectrum at time=tstep from the spectrum at time=tstep+1, but decided not to because I worried that doing so would only give me one chance to catch when an appliance was turned on (or off). If you don't subtract the spectrum at the previous time step, then you have all the sample points between when the appliance was turned on and when the appliance was turned off where you might catch that the appliance is running. </p>\n<p>Your method obviously worked very nicely. :-) But perhaps the optimal solution would be to consider both HF(t) and HF(t)-HF(t-1)....</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32921,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "10/31/2013 09:35:52",
      "content": "<p>I also used time differences (first derivative) to detect occurrence of events which as Rosnfeld already mentioned is critical. &nbsp;I used an edge detection algorithm for the power signatures to detect events and measure the size of the jump in each value from before and after the event happened. &nbsp;A summary of the results is shown in our visualization entry.</p>\n<p>I could see few transient HF signals that lasted more than a second and even for those the one second resolution of the HF data was too coarse to be useful because in some cases the transient was concentrated in one second giving a clear signal and in other cases it was split between two consecutive seconds resulting in a weaker signal for each of the seconds that was hard to distinguish from the noise.</p>\n<p>For each event, I averaged the HF data for several samples after the event and subtracted the average from several samples before the event. &nbsp;I then averaged these HF difference over multiple events to get steady state HF signatures for each appliance (plotted in the HFdiff figures of the visualization entry). &nbsp;In theory, these HF signatures should have allowed me to distinguish between appliances that had nearly identical power signatures and the theory worked well in some cases.</p>\n<p>These were some appliance pairs for which even the HF signatured I generated were not clear enough to distinguish between them and other pairs where the back-end solution did not seem to match what the HF signatures were telling me. &nbsp;In some cases it was more effective to choose the laundry room lights based on whether the Washer/Dryer were working at the same time than to rely on the HF signatures.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32923,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "10/31/2013 10:02:08",
      "content": "<p>Congragulations to both Jessica and Luis for the first and second place.</p>\n<p>I am wondering if there is an easy way to figure out which appliances you found that I either missed or chose not to mark because I was not confident about them.</p>\n<p>If you managed to detect events that involve any of the following appliances:</p>\n<ul>\n<li><span style=\"line-height: 1.4\">House 4 Appliances 1: Apple Macbook Pro 13</span></li>\n<li><span style=\"line-height: 1.4\">House 4 Appliance 21: Kitchen lights with dimmer</span></li>\n<li><span style=\"line-height: 1.4\">House 3 Appliance 24: Living room lights</span></li>\n<li><span style=\"line-height: 1.4\">House 2 Appliance 28: Phone charger</span></li>\n</ul>\n<p><span style=\"line-height: 1.4\">I would be very interested in seeing how you did it. </span></p>\n<p><span style=\"line-height: 1.4\">I could not find any useful signals in the test data that match the signatures for tags provided for these appliances. &nbsp;I am wondering what I missed that others may have found.</span></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32928,
      "author_name": "rosnfeld",
      "author_url": "",
      "post_date": "10/31/2013 13:34:30",
      "content": "<p>Thanks Noam for your write-up, and I didn't have any luck with any of the appliances you mention, either - though I also didn't have luck with most of the appliances. As people can see from the scores, a lot of appliance-time still went undetected, not even half of it was found in the best private fold submissions.</p>\n<p>To the others who asked for clarification on mine - I was being a bit handwavy with details (intentionally) but my approach is similar to Noam's and I think he explained it well, and his technique is a bit more precise than mine.</p>\n<p>I did use pandas and would recommend it - it's very nice to have simple methods like resample() and diff() that do all the work for you. I consistently find sample python code for data analysis where others have 20 lines to perform what pandas can do in 2.</p>\n<p>I'd love to hear if anyone had success with techniques substantially different from what's already been discussed. One problem that always haunted me was if users did the very natural thing of hitting a bank of lightswitches at once (or, very close in time). I think I could see instances of this happening, and thought about making my approach handle multiple simultaneous on/off events, but never took the plunge.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32932,
      "author_name": "starkreality",
      "author_url": "",
      "post_date": "10/31/2013 14:24:42",
      "content": "<p>I also offer my congrats to Jessica, Luis and Titan.</p>\n<p>Noam, I entered the contest late, and only worked on house 4. I was able to obtain visually distinct patterns for all of the appliances in the house. </p>\n<p>In my visualization entry, see slides 4 and 8 for a visualization of the house 4 kitchen lights.&nbsp; (same image on both slides, one with and one without some annotations.)&nbsp; Starting on the left, the first &quot;cyan&quot; box represents appliance 20 (Kitchen Counter Lights), the second &quot;cyan&quot; box is a slightly different color.&nbsp; It represents appliance 21 (Kitchen Lights with Dimmer).&nbsp; The next, longer orange bar is appliance 27 (oven).&nbsp; This sequence of three is sort of repeated to the far right of the image as 21, 20, 27 instead of 20, 21, 27 as on the left.</p>\n<p>Slide 10 contains the pattern for the Apple Macbook Pro 13.&nbsp; It is on the far right under the single dark blue box.&nbsp; This one box is over the three on/off events.&nbsp; There are signals apparent at the bottom of the slide (HF signal) and above the center (amps strength).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32964,
      "author_name": "luistp001",
      "author_url": "",
      "post_date": "10/31/2013 19:22:00",
      "content": "<p>My approach is still similar to the edge detection and differences in the power, but I will still describe it.</p>\n<p>&nbsp;</p>\n<p>First at all, I did not use any information from the HF data. I did not even look at it. My plan was originally to extract as much information from the power as I can and then go back to use the HF information. Later, I did not have time to go back and explore the HF data.</p>\n<p>&nbsp;</p>\n<p>For each of the appliances I have a window of 12 time ticks ( 2 seconds) that contain the 'turning on' signature and another window for the 'turning off' signature. The first 3 time ticks contain the power when the appliance is still off, and the remaining contain the power when the appliance is on. The number 12 is not fixed. I use different numbers for some appliances. There is a trade off for that number. For large numbers, the system is more robust to noise. For low numbers, the system is more capable of identifying appliances that are turned on or off at the same time.</p>\n<p>&nbsp;</p>\n<p>For a new test day, I have a window that runs through each time tick of the day and is compared to the 'turning on' signatures of each appliance. When the running window is very similar to one of the appliances signatures, the system mark that the appliance has been turned on. The same is done independently for the 'turning off' signatures. Finally, I pair the 'turning on' events with the 'turning off' events. That is the basic algorithm.</p>\n<p>&nbsp;</p>\n<p>My system is capable of identify appliances that are turned on very close in time (the difference in time should still be at least 1 second). However, it has limitations for low power appliances and it is unable to successfully distinguish appliances that are very similar.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32967,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "10/31/2013 19:48:45",
      "content": "<p>Thanks Luis,</p>\n<p>My &quot;edge detection&quot; algorithm also has an adjustable window size and I agree with your assessment that &quot;For large numbers, the system is more robust to noise. For low numbers, the system is more capable of identifying appliances that are turned on or off at the same time.&quot;</p>\n<p>For those of you who are interested in the technical details you might want to look at the comments&nbsp;<a href=\"https://www.kaggle.com/c/belkin-energy-disaggregation-competition/forums/t/6135/did-some-of-the-appliances-get-replaced-between-test-dates\">on the H1 GS4 and TV appliances</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 32975,
      "author_name": "jessicabombaz",
      "author_url": "",
      "post_date": "10/31/2013 22:42:54",
      "content": "<p>First I want to thank the admins and the Belkin team to provide and manage such an interesting and challenging competition. </p>\n<p>It was really a difficult task to detect the correct appliances. Although there are various data sources available, sometimes I found it impossible to distinguish or even detect low signal appliances due to high signal-to-noise ratio. This difficulty is also reflected in the final scores, as anyone of us managed to predict only about 0.04 / 0.08 = 50% of all the given appliances. I wonder, how much the score would be, if we took together the correctly predicted appliances of all the participants?</p>\n<p>Basically I used also the first time differences to detect peaks. Instead of computing s(t+1) - s(t) which might be vulnerable to sampling frequency and also increases noise, my algorithms compute the mean of two time windows separated by some delay. Only then I took the difference. For those appliances with a characteristic signal, I computed the similarity by integrating over the squared difference. This works surprisingly well even if the signal is noisy.</p>\n<p>@Noam Tene: Unfortunately I also wasn't able to detect the appliances you mentioned above.</p>\n<p>I learned a lot during the competition and I'm looking forward to the next signal detection task.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33015,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "11/01/2013 13:11:09",
      "content": "<p>[quote=jessica bombaz;32975]</p>\n<p><span style=\"line-height: 1.4\">I wonder, how much the score would be, if we took together the correctly predicted appliances of all the participants?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">I was also wondering about a question along the same lines.</span></p>\n<p><span style=\"line-height: 1.4\">The question needs to be more carefully phrased however because I believe that the answer to the question as Jessica phrased it is both trivial and uninteresting. &nbsp;</span><span style=\"line-height: 1.4\">Specifically, I would give very good odds that &quot;if we took together the correctly predicted appliances&quot; from the only two submissions entered by&nbsp;&quot;Civashritt A B&quot; the score would be a perfect 0.0000; since his two submissions are a subset of those from &quot;All participants&quot; that would skew the results.</span></p>\n<p><span style=\"line-height: 1.4\">So how do we phrase the question that Jessica and I both seem to be interested in? &nbsp;</span><span style=\"line-height: 1.4\">Initially I considered&nbsp;</span><span style=\"line-height: 1.4\">the &quot;correctly predicted appliances from all four chosen submissions of all the participants&quot; to eliminate some of my early submissions&nbsp;that were designed to find how many &quot;on&quot; minutes my system needed to find in each day of the public fold. &nbsp;But then I realized that&nbsp;Civashritt's &quot;All-On&quot; submissions would still qualify under that definition.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">I therefore propose the following phrasing:&nbsp;</span></p>\n<p>I wonder, what the score would be if we took together the&nbsp;<span style=\"line-height: 1.4\">correctly predicted appliances from all participant's submissions that were chosen as the four &quot;selected&quot; submissions and got scores better than the all off benchmark&quot;</span></p>\n<p>&nbsp;</p>\n<p>Now that I have defined the question more clearly, I would like to make a &quot; hand labelled and human prediction&quot; about the answer:</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">[quote=jessica bombaz;32975]</span></p>\n<p>@Noam Tene: Unfortunately I also wasn't able to detect the appliances you mentioned above.</p>\n<p>[/quote]</p>\n<p><span style=\"line-height: 1.4\">I predict that If Luis and Rosnfeld can confirm that they did not detect the appliances I mentioned either, &nbsp;the combined score as I defined above will still be higher than 0.02 for the public fold and 0.01 for the private fold. &nbsp;In other words, I am predicting that at least 23% of the minutes marked as &quot;On&quot; in the public fold backend end solution and at least 14% of the minutes marked as &quot;on&quot; in the private fold were not detected by any of the participants.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">My confidence in this prediction is much higher than my confidence in many of the decisions I had to make about which appliance detection algorithms I should use for my four final submissions.</span></p>\n<p><span style=\"line-height: 1.4\">The prediction is based on several facts that I observed:</span></p>\n<ol>\n<li>My submission scores clearly show that appliances 1 and 21 in H4 turn on or off during intervals where there were no signals whatsoever (much less a signal that matches their tagged signatures).</li>\n<li>Another submission shows that Appliances 1 and 21 were both marked as &quot;Off&quot; at the beginning and end of the Sep12 submission period as well as the beginning of the Sep13 submission period.</li>\n<li>Other submissions show that during the 644 minutes of the two public fold days for H4&nbsp;Appliance 1 was on for 430 minutes and appliance 21 was on for 308 minutes.</li>\n</ol>\n<p>I was pretty confident that the signals were not there even before Jessica provided independent confirmation for that hypothesis. If Luis and Rosnfeld also confirm it, I would find it very hard to believe that these appliances were actually turned on. It is much easier to believe that whatever appliances Belkin may have thought were turned on and off when they generated the back-end solution&nbsp;were not in fact the appliances that were tagged in the training data set. &nbsp;&nbsp;Since the tagged appliances never generated on/off signals in the data none of the other contestants would have been able to find their signal and mark them correctly.</p>\n<p>Having seen this happen for two appliances just in H4, I would not be surprised to find similar issues with appliances in the other three houses so I feel quite confident that these back-end false positives would result in an unavoidable score for any contestant predictions that are based on the data Belkin provided.</p>\n<p><span style=\"line-height: 1.4\">I also learned a lot during the competition and I'm looking forward to the next signal detection task.</span></p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33018,
      "author_name": "rosnfeld",
      "author_url": "",
      "post_date": "11/01/2013 14:22:03",
      "content": "<p>Here are the appliances in my best submission:</p>\n<p>house_number,appliance_id,appliance_name<br>1,10,Dining Room Lights<br>1,11,Dishwasher<br>1,15,Downstairs Hallway Lights<br>1,19,GR PS4<br>2,9,Dishwasher<br>2,10,Dryer<br>2,16,Kitchen Lights<br>2,23,Master Bedroom Lights<br>2,26,Office Lights<br>2,37,Washer<br>3,12,Dryer<br>3,23,Living Room Audio-DVR-TV<br>3,29,Master LCD TV/DVR<br>3,31,Microwave<br>3,33,Oven<br>3,37,Washer<br>4,12,Dishwasher<br>4,19,Kettle<br>4,35,Toilet Halogen</p>\n<p>Even though I personally labeled some of these as &quot;very high risk&quot; I can see from the private fold score that I got 97.4% of my predicted rows correct. I guess I am quite risk averse. :)</p>\n<p>I'd be curious to know what percentage others got correct.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33019,
      "author_name": "rosnfeld",
      "author_url": "",
      "post_date": "11/01/2013 14:23:22",
      "content": "<p>And as others have mentioned - this competition was a lot of fun. I would definitely do more &quot;signal processing&quot; type competitions in the future.</p>\n<p>Congrats to the winners. :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33035,
      "author_name": "jmshumpert",
      "author_url": "",
      "post_date": "11/01/2013 16:35:47",
      "content": "<p>It is interesting that the top performers all seem to have used some sort of similarity measure to compare detected test events with average training signatures (LF or HF).&nbsp; That was my first approach too, and I got my best results with that.&nbsp; However, I also tried k-nearest neighbors (extending&nbsp;the approach described in Gupta's paper by adding LF features such as real/imaginary power and current harmonics), na&#239;ve Bayes, and even random forest.</p>\n<p>None of these machine learning techniques performed very well at all, even when I combined them into an ensemble voting approach similar to that described by rosnfeld.&nbsp; I don't know whether I just did a poor job of identifying and extracting the features, but it seems hard to believe that the Gupta KNN approach could get near 100% accuracy unless the signal-to-noise was much better than in the data we had.</p>\n<p>Did anyone else try other classification algorithms that worked successfully?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33037,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "11/01/2013 16:46:32",
      "content": "<p>The house totals for my best private fold submission were were:</p>\n<p>H1: 260 minutes (which did not include 117 and 119)</p>\n<p>H2: 1278 minutes</p>\n<p>H3: 1573 minutes &nbsp;</p>\n<p>H4: 443 minutes</p>\n<p>According to my calculation if all of these minutes matched the back end solution my score should have been 0.03770. &nbsp; I thought this was my conservative submission. &nbsp;I wonder which of the devices I detected was marked as off in the Belkin back end solution.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33038,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "11/01/2013 16:56:01",
      "content": "<p>@Mike Shumpert: it seems that the best of your four submissions did not do much better than the &quot;All Off&quot; benchmartk. &nbsp;I am wondering if you picked the wrong four submissions or if your public fold score was a result of overfitting the public data. &nbsp;Would you care to elaborate?</p>\n<p>I would also like to clarify that I have seen no posts from the top 4 to indicate the use of LF data. &nbsp;What we all did (regardless of how we called it) was event detection in the time domain followed by some form of pattern matching to features that we measured for each event.</p>\n<p>My attempts to use the HF data were useful in a few cases (as demonstrated in my visualization entry). &nbsp;I believe that some of the HF data is clear enough to indicate that the Belkin back end solution may have marked the wrong appliances in several instances. &nbsp;Taking that into consideration, the best strategy may have been to ignore the HF data even when it was useful.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33040,
      "author_name": "jmshumpert",
      "author_url": "",
      "post_date": "11/01/2013 17:31:41",
      "content": "<p>Thanks for the reply, Noam.&nbsp; Yes, my best results alas came from entries that were not amongst my four submissions.&nbsp; I was trying new tricks to the very end, and did a poor job of covering my bases in the selection process.&nbsp; I ended up going with the best public fold results and they were perhaps over-fitted as you suggest.</p>\n<p>What I meant by &quot;LF data&quot; was all the non-HF data: real power, current, etc.&nbsp; It seems that Luis did very well working with only this data and ignoring HF altogether.&nbsp; From the research papers suggested to us, it seems the best approach would have to take all of it into account somehow.&nbsp; But as you point out, that would require us to have more confidence in the labeling of the test data (and for that matter, the training data).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33042,
      "author_name": "ntasfi",
      "author_url": "",
      "post_date": "11/01/2013 17:49:43",
      "content": "<p>Did any of the top 4 bother with feature generation?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33043,
      "author_name": "luistp001",
      "author_url": "",
      "post_date": "11/01/2013 17:51:47",
      "content": "<p>The only features I used were real power and apparent power from phase 1 and phase 2.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33046,
      "author_name": "sidhantgupta",
      "author_url": "",
      "post_date": "11/01/2013 18:25:56",
      "content": "<p>Excellent work everyone! I am really excited to learn about the clever tricks you all used.</p>\n<p>FWIW, the problem you all face is non-trivial with a large part of it being an open research problem. With the positive results you all generated, you have just set a new standard and defined a new state-of-the-art.&nbsp;</p>\n<p>Congratulations!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 33074,
      "author_name": "noamtene",
      "author_url": "",
      "post_date": "11/01/2013 23:10:11",
      "content": "<p>[quote=Luis Tandalla;33043]</p>\n<p>The only features I used were real power and apparent power from phase 1 and phase 2.</p>\n<p>[/quote]</p>\n<p>I tried to look at several alternative sources of information provided in the data and eventually reached nearly the the same conclusion as Luis did. &nbsp;My event detection code happens to use the first harmonic of the real power and VAR from both phases but in retrospect that was an arbitrary choice. &nbsp;I designed my system to be able to detect signals in the higher harmonics when they exist but I did not find any tagged appliances that could be detected only based on the higher harmonics and the additional&nbsp;<span style=\"line-height: 1.4\">information gained from analysis of the higher harmonics never added significantly to my confidence in making a call based on the first harmonic alone (where most of the signal power is).</span></p>\n<p>I did see some very clear signals in the higher harmonics and for some appliances the VAR signals in the third and fifth harmonic had a better signal to noise ratio than the signal in the first harmonic. &nbsp;This is to to be expected for appliances with large reactive impedance and I believe that the higher harmonics may be useful for identifying differences between similar appliances with otherwise similar first harmonic signatures. &nbsp;However, in this specific competition that level of detailed analysis did not provide significant additional information and what it did provide fades in comparison with the high resolution of the HF data. &nbsp;</p>\n<p>When the first harmonic signature gives a high confidence unambiguous call, I concur with Luis' decision that there is no point in looking further and using more complicated algorithms. &nbsp;When more than one appliance matches the first harmonic signal, each of the odd higher harmonics amplifies our ability to measure the reactive impedance and look for small differences but in most cases it does not provide an independent prediction source like some of the higher frequency&nbsp;<span style=\"line-height: 1.4\">HF data.</span></p>\n<p>There were only a few pairs and triplets of appliances to test these techniques on and the quality of the back end solution was not high enough to support a real comparison between techniques. &nbsp;My choice to use the first harmonic instead of the total power (as Luis did) was in order to keep my code flexible enough in case the higher harmonics turned out to be useful. &nbsp;The difference between my approach and Luis' is insignificant because the contribution of the higher harmonics to the total power is much smaller than other noise sources. &nbsp;If the harmonics turn out to be useful (which I believe might happen in different situations that were not covered in this data set) my choice to use the first harmonic may provide clearer visualization of the independent contribution from each harmonic.</p>\n<p>My analysis of the higher harmonics in this competition did not provide additional information that was not already available from the first harmonic data which dominates the total power signature. &nbsp; I therefore completely concur with Luis' decision to look only at the total power.</p>\n<p>&nbsp;</p>\n<p>I am not surprised that people who tried to find correlations in the voltage and current data did not get very far. &nbsp;The information content in the voltage signals (for all six harmonics) was very low. &nbsp;The AC voltage at the given sampling frequency was was nearly constant (as expected). &nbsp;Even the small and few variations in the voltage that rose above the white noise did not seem to be correlated in any way to events in the tagged data so there was no useful information to be gained from those signals.</p>\n<p>When it comes to the current data, a clear correlation can be observed with some of the tagged events, however, the information content in the current data reflects not only the events that we are interested in observing but the external power line variations in both amplitude and phase which as I mentioned above have nothing to do with the appliances that we are trying to detect. &nbsp;The current data therefore contains more noise sources than the power data without adding any additional information. &nbsp;</p>\n<p>Adding voltage or current data as supposedly &quot;independent&quot; sources to your analysis only increases the size of the problem making it more complicated without gaining much in terms of predictive power. &nbsp;I am not at all surprised to see that people who trusted that approach did not do as well in this competition.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "32910": "",
    "32911": "",
    "32914": "",
    "32915": "",
    "32916": "",
    "32917": "",
    "32921": "",
    "32923": "",
    "32928": "",
    "32932": "",
    "32964": "",
    "32967": "",
    "32975": "",
    "33015": "",
    "33018": "",
    "33019": "",
    "33035": "",
    "33037": "",
    "33038": "",
    "33040": "",
    "33042": "",
    "33043": "",
    "33046": "",
    "33074": ""
  },
  "source": "meta"
}