I would like to add what @SRK and @kunal mentioned here.
“Data Mining”, as the name suggests, is a process of discovering useful patterns or insights in your datasets. These insights or newly-found information allow you to take meaningful action to improve your business or to make something better.
e.g lets say I run a grocery store. I record my daily sales in an excel sheet. A typical row contains the product I sold, the customer name who bought it, the day on which the sale was made, the quantity sold, the sale price etc
Now when I look at my excel sheet after 3 months, I can find out which of my products are sold most? Which are my most frequent customers? Which is the busiest day? Based on these facts, I can devise some business strategies to maximize my profit. This is a very basic form of Data Mining by Factual Reporting.
Using this past data, I could also try to predict which customers are likely to turn up on particular days? Or which of my products get sold in combination of each other? I will use certain statistical methods to derive this information. It will again help me to fine-tune my business. This is an improved form of data mining using statistical modeling where I may discover new information which could not be found by factual reporting. Every statistical model works on certain assumptions. I will use that statistical model which satisfy my business assumptions
Lets say – your customers provide you feedback on their purchases. To gain actionable insights from these feedbacks, you write a computer program which takes these feedbacks as input and gives you back a score of customers’ feelings or sentiments about your product. These sentiments can help you gain an understanding about your customers’ needs and you can take some actions to satisy your customers. As the purchases tend to grow by different customers and new feedbacks keep coming, your program gets better at sensing the sentiments of your customers. This is Machine Learning. Behind the scenes, Machine Learning is also using statistical techniques but without making any assumptions about data.
I would say that Machine Learning algorithms can be used to do data mining on large data sets and the mining results improve over time as these algorithms keep learning from experience.