Machine Learning

Machine learning is a scientific discipline that deals with the design and development of algorithms that allow computers to define rules based on empirical data, such as sensor data or databases. A major focus of machine learning research is to automatically learn to recognize complex patterns and make intelligent decisions based on data. The difficulty lies in the fact that the set of all possible behaviors given all possible inputs is too large to describe generally in programming languages.
An important step before the application of machine learning techniques is feature selection. Feature selection is the choice of a subset of the most relevant features. By removing most irrelevant and redundant features from the data, feature selection helps improving the performance of learning models by reducing the data dimension and the size of the hypotheses space. Feature selection also provide a  better understanding of the real features in the data, by extracting the important features the way they are related one with each other.
Two classical methods have been in use in machine learning:
Supervised learning  techniques aim at deducing a function from training data. The training data consists of pairs of input objects, and desired outputs. The output of the function can be a continuous value, or a binary label describing the class of the input object. The task of the supervised learner is to predict the value of the function for any valid input. To achieve this, the learner has to generalize from the presented data to unseen situations in a ‘reasonable’ way. Examples for supervised learning are among many others Support vector machines, KNN, Neural networks.
Unsupervised learning is a class of methods where one seeks to determine the distribution of the observations. Many unsupervised learning methods are based on data mining methods used to preprocess the data. Unsupervised learning is distinguished from supervised learning by the fact that the learner is given only unlabeled examples.