Machine Learning is the subset of Artificial Intelligence which allow systems to perform the specific tasks. Machine Learning and Data Mining work closely as both search through data to look for patterns basically it detects patterns in data and adjust program actions accordingly.
A good candidate should have a deep understanding of a broad set of algorithms and applied math, problem solving and analytical skills, probability and statistics and programming languages such as Python/C++/R/Java. Beyond all, Machine Learning requires innate curiosity, so if you never lost the curiosity you had when you were a child, you're a natural candidate for Machine Learning.
Following is the list of skiil sets which are required for Machine Learning:
1. Python/C++/R/Java: If you want a job in Machine Learning, you will probably have to learn all these languages at some point. C++ can help in speeding code up. R works great in statistics and plots, and Hadoop is Java-based, so you probably need to implement mappers and reducers in Java.
2. Probability and Statistics: Theories help in learning about algorithms. Great samples are Naive Bayes, Gaussian Mixture Models, and Hidden Markov Models. You need to have a firm understanding of Probability and Stats to understand these models. Go nuts and study measure theory. Use statistics as a model evaluation metric: confusion matrices, receiver-operator curves, p-values, etc.
3. Applied Math and Algorithms: Having a firm understanding of algorithm theory and knowing how the algorithm works, you can also discriminate models such as SVMs. You will need to understand subjects such as gradient decent, convex optimization, lagrange, quadratic programming, partial differential equations and alike. Also, get used to looking at summations.
4. Distributed Computing: Most of the time, machine learning jobs entail working with large data sets these days. You cannot process this data using single machine, you need to distribute it across an entire cluster. Projects such as Apache Hadoop and cloud services like Amazon's EC2 makes it easier and cost-effective.
5. Expertise in Unix Tools: You should also master all of the great unix tools that were designed for this: cat, grep, find, awk, sed, sort, cut, tr, and more. Since all of the processing will most likely be on linux-based machine, you need access to these tools. Learn their functions and utilize them well. They certainly have made my life a lot easier.
6. Gain Insights about Advanced Signal Processing Techniques: Feature extraction is one of the most important parts of machine-learning. Different types of problems need various solutions, you may be able to utilize really cool advance signal processing algorithms such as: wavelets, shearlets, curvelets, contourlets, bandlets. Learn about time-frequency analysis, and try to apply it to your problems. If you have not read about Fourier Analysis and Convolution, you will need to learn about this stuff too. The ladder is signal processing 101 stuff though.
7. Other skills: (a) Update oneself: You must stay up to date with any up and coming changes. It also means being aware of the news regarding the development to the tools, theory and algorithms (research papers, blogs, conference videos, etc). Online community changes quickly. Expect and cultivate this change.
(b) Read a lot: Read papers like Google Map-Reduce, Google File System, Google Big Table, The Unreasonable Effectiveness of Data. for enhancement in skills one should also read yhr books which are available online.