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.

  • 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, 2013 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, 2013 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, 2013 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, 2013 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. Mar 19, 2013 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.

  • 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, 2013 at 19:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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