Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on a project where I'm developing an interface that learns how you typically use a space, and tries to create the most appropriate control strategy for heating/lighting. I've done some research into the area of machine learning techniques, but I was wondering if there were any recommendations on which learning algorithm would work best for this scenario. I have a lot of different input parameters: I designed a low-cost wireless sensor which reports light, temperature, humidity, and motion detection every 8 seconds... I also tap into live weather feeds through the internet for exterior conditions... And I'm also storing all of the different UI changes (toggles, sliders, etc...) so hopefully I can tell when people are actually changing certain settings and adapt accordingly. As far as learning algorithms... there's a lot of different options including (to name just a few):

  • K-Means
  • Decision Tree
  • Naïve Bayes
  • Neural Networks
  • Hidden Markov Models
  • Nearest Neighbors

Which of these would be most ideal for the scenario I'm referring to of: Having multiple data sources and correlating them with user input to predict future desires and plan accordingly.

share|improve this question
    
Why do you think you need machine learning to solve this problem? It's not clear what your problem is that you are trying to learn about. What sort of HVAC equipment are you using to control the temperature / humidity / air flow ? –  Peter K. Mar 19 '13 at 1:16
    
@Peter, I've actually also designed other pieces of hardware to help control the environment locally. But, I can wirelessly control desk fans, heaters, task lights, as well as AC units (which heat and cool), and overhead lights whose color/brightness can be controlled. So, there are a lot of different output conditions which can be adjusted based on the 'learned' preferences of the individual. –  andyopayne Mar 19 '13 at 1:24
1  
Most examples I've seen don't need to delve into any of the algorithms. Have a look at fuzzy controllers. They don't tend to need much "learning" (unless you count calibration as learning), but they do give a way of relating qualitative statements about comfort to what you should do with the heating / cooling system. –  Peter K. Mar 19 '13 at 1:46
    
Thanks Peter. I have read a few papers which apply fuzzy logic to this sort of problem... with some decent results. I understood fuzzy logic as a way to determine if a variable was either in or out of a certain set (hence the fuzzy distinction). But, would fuzzy logic help in determining the most appropriate course of action (ie. is it better to turn on a fan vs. turning on the AC unit? Which do you prioritize and when?) Do you think fuzzy controllers can deal with this sort of optimization? –  andyopayne Mar 19 '13 at 1:55
4  
Any machine learning algorithm that's learning this from scratch is going to take too long to amass enough data from its environment to learn anything useful. Controllers like this have been done before; the way you do it is by putting engineering equations into the system (things like thermodynamic calculations), and then using a simple learning algorithm to tweak the constants in those equations. –  Robert Harvey Mar 19 '13 at 3:24

1 Answer 1

Monte-Carlo methods may work for you. In a nutshell: define the boundaries of the results you are looking for, for example energy consumption(derived from measured system parameters) within a range, and run a simulation where the free variables are allowed to vary to simulate a physical system. The sets that fall within the solution space will define the acceptable input ranges.

If your search space is manageable (depends on your system constraints), then you can fit curves to these parameters.

Alternately, you can use a minmax approach if you can define your search space in a way suitable for local minimization.

share|improve this answer
    
Thanks mistermeta. I've actually decided to use a neural network. I'm in the process of refining my GUI, but so far, it seems to be working pretty well. I appreciate all of the feedback. –  andyopayne Sep 10 '13 at 19:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.