Adaptive learning of user's IoT setting preferences
This sounds like a fun problem but it very open ended!  I will provide some links from the Scikit-Learn User Guide.  There are many more reading options, but the SKL Userguide has lots of examples and usually links to academic publications for more in-depth reading.  Another great resource is: Introduction to Statistical Learning, and if you are good at math: Elements of Statistical Learning 

Model Selection

The first big question is whether the settings you are trying to predict are ordinal values or continuous values?  Continuous value will allow you to use regression methods, where as ordinal values will give you a choice between regression methods and classification schemes.  I would suggest employing a couple of different models to start and then selecting the best one moving forward.  Some possible candidates are:


Linear regression (with nonlinear features as appropriate) because linear models are usually insightful, 
Support Vector Classification/Regression (SVC/SVR) as these are often very accurate classifiers. and either 
Naive Bayes or Random Forests as these often give good results where other models fail.


Initial Training Data

You will need to prime your solution with some deterministic data or data from another dataset that you have adapted to fit your model.  I suggest priming the system with common sense values and then employing some sort of algorithm to forget those values as the system becomes well-trained.

Moving Forward

You will have to decide whether each user's model will use other user's data or not.  This is sometimes solved via clustering methods like k-means or DBSCAN), where by users are clustered into groups each cluster has a different model associated with it.  I would suggest retraining (fitting) the model on regular time frames initially, and then investigating the possibility of moving to an online learning system.

I absolutely suggest using a well known library for your problem. Scikit-Learn is great for the reasons mentioned above and for prototyping, but doesn't scale particularly well. H20 and Mahout are high quality scalable libraries that I would recommend for a big data production system.  Mahout in Action is a great book to learn from, also.

Hope this helps!