Machine learning is concerned with the design of computer programs that can improve their performance by learning from experience. This often takes the form of algorithms for supervised statistical pattern recognition, regression or unsupervised clustering, and so is closely related to the field of data mining.
Unlike data mining, however the focus is on optimising performance (often with theoretical bounds on generalisation), rather than exploration of the data. Machine learning also has strong links with statistics, with many approaches based on Bayesian principles, or results from computational learning theory. Unlike statistics, however, there is often greater interest in situations where the underlying assumptions of statistics are violated, for instance learning from non i.i.d. (indentically and independently distributed) data, learning under covariate shift and semi-supervised or transductive learning.