For decades, humans have been intrigued by the concept of an intelligent and independent self-learning machine. The idea behind Machine Learning (ML) is to simplify the development of analytical models such that, with the help of available data, algorithms can learn continuously. Internet of Things (IoT) enabled devices are the major sources of data generation with a number of multiple modalities and differing data consistency, defined by velocity in terms of time and position dependence. Intelligent processing and analysis of this generated data (Big Data) is the key to developing smart IoT applications. ML may be used in cases where the desired effect is defined (supervised learning) or where data itself is not defined beforehand (unsupervised learning) or where learning is the outcome of the interaction among the learning model and the environment (reinforcing learning). In this chapter, we present and discuss a taxonomy of machine learning algorithms that can be used with IoT. Furthermore, how different machine learning techniques are used to derive higher-level information from the data is illustrated. Lastly, we investigate, what are the real-world IoT data characteristics that involve an interpretation of the data?