Data mining is a field in which we have lots of technics for exploring data, data explaination. In data mining, we try to know hidden properties of datas.
Machine Learning is a technic in which we try the learn data properties (not mining or exploring). And the main purpose is to estimate, label, classify, etc. new data of a same type of data used before.
My opinion is that Data mining is cooking. The ingredients are the data and methods come from the data analysis, statistics, computer sciences, machine learning ...
Machine learning is a field of computer sciences.
Data mining may use Machine learning. It is one of the applications of Machine Learning.
Especially, in Machine Learning the tasks are related to estimation and classification. Depending on the used approach the techniques can be seen as a kind of black box, for instance, in Neural Networks.
Another aspect: Machine Learning is (in some cases somehow) biological inspired or tries to "use" a human inspired way of handling learning task.
While I totally agree with the opinion that the two fields overlap, I view machine learning as a tool used by data mining to extract "knowledge" from data.
In data mining the tool (clustering, decision trees and association rule mining are examples) is used to infer relationships and facts about the input data that are not necessarily observable in their raw state. The main reason for data mining is understanding those correlations, the "knowledge". Data mining can use tools other than machine learning to reach the same goal such as statistics.
In machine learning the goal is, at least in many cases, less about knowledge extraction as much as it is about classification and regression. It focuses on the output of a model more than the intra-input relationship where the model can sometimes be very hard to visualize (Deep belief nets, high dimensional SVMs).
I agree with Rober's description. Data mining is an activity, in which hidden information (e.g., non-obvious relationships) is discovered, perhaps in a large dataset. One application might be optimizing advertisement scheduling -- given a large set of credit card transactions, there may be overall trends in take-out food purchases; maybe pizza is most likely to be ordered between 19:00 and 01:00 on the weekends. These sorts of relationships could be found using any number of techniques. For example, SQL queries in a well-annotated database of this information might tell you when pizza is most likely to be ordered, allowing you to schedule online advertisements during peak pizza ordering periods. So data mining is not necessarily synonymous with machine learning. However, machine learning techniques might be required to uncover some more complex relationships -- the pizza example may not hold during the Christian season of Lent, during which time the observant might instead be getting fish & chips on Friday evenings. Unless a database programmer considered this ahead of time, factors such as these are unlikely to be included in any database query, the outcome of which would surely be affected. Machine learning can be used to stumble upon and account for factors such as these without requiring a priori specification by the investigator.